rx-player 3.26.1 → 3.26.2
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/.github/workflows/checks.yml +99 -0
- package/.github/workflows/sonarcloud_analysis.yml +20 -0
- package/CHANGELOG.md +99 -71
- package/README.md +19 -18
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/clear_element_src.js +8 -6
- package/dist/_esm5.processed/compat/eme/close_session.js +1 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +1 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +3 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +6 -4
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +1 -2
- package/dist/_esm5.processed/compat/eme/generate_key_request.js +1 -2
- package/dist/_esm5.processed/compat/eme/load_session.js +2 -3
- package/dist/_esm5.processed/compat/event_listeners.d.ts +3 -2
- package/dist/_esm5.processed/compat/event_listeners.js +8 -14
- package/dist/_esm5.processed/compat/make_vtt_cue.js +1 -1
- package/dist/_esm5.processed/compat/on_height_width_change.js +1 -2
- package/dist/_esm5.processed/compat/set_element_src.js +1 -1
- package/dist/_esm5.processed/compat/when_loaded_metadata.js +1 -2
- package/dist/_esm5.processed/compat/when_media_source_open.js +1 -2
- package/dist/_esm5.processed/config.d.ts +3 -8
- package/dist/_esm5.processed/config.js +4 -9
- package/dist/_esm5.processed/core/abr/abr_manager.d.ts +11 -10
- package/dist/_esm5.processed/core/abr/abr_manager.js +47 -8
- package/dist/_esm5.processed/core/abr/bandwidth_estimator.js +1 -1
- package/dist/_esm5.processed/core/abr/buffer_based_chooser.d.ts +2 -2
- package/dist/_esm5.processed/core/abr/buffer_based_chooser.js +3 -3
- package/dist/_esm5.processed/core/abr/get_buffer_levels.js +3 -0
- package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.d.ts +3 -3
- package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.js +3 -3
- package/dist/_esm5.processed/core/abr/guess_based_chooser.d.ts +95 -0
- package/dist/_esm5.processed/core/abr/guess_based_chooser.js +242 -0
- package/dist/_esm5.processed/core/abr/index.d.ts +3 -3
- package/dist/_esm5.processed/core/abr/last_estimate_storage.d.ts +61 -0
- package/dist/_esm5.processed/core/abr/last_estimate_storage.js +37 -0
- package/dist/_esm5.processed/core/abr/network_analyzer.d.ts +25 -7
- package/dist/_esm5.processed/core/abr/network_analyzer.js +68 -31
- package/dist/_esm5.processed/core/abr/pending_requests_store.d.ts +56 -28
- package/dist/_esm5.processed/core/abr/pending_requests_store.js +9 -7
- package/dist/_esm5.processed/core/abr/representation_estimator.d.ts +34 -51
- package/dist/_esm5.processed/core/abr/representation_estimator.js +111 -52
- package/dist/_esm5.processed/core/abr/representation_score_calculator.d.ts +5 -8
- package/dist/_esm5.processed/core/abr/representation_score_calculator.js +20 -23
- package/dist/_esm5.processed/core/abr/{ewma.d.ts → utils/ewma.d.ts} +0 -0
- package/dist/_esm5.processed/core/abr/{ewma.js → utils/ewma.js} +0 -0
- package/dist/_esm5.processed/core/abr/{filter_by_bitrate.d.ts → utils/filter_by_bitrate.d.ts} +1 -1
- package/dist/_esm5.processed/core/abr/{filter_by_bitrate.js → utils/filter_by_bitrate.js} +1 -1
- package/dist/_esm5.processed/core/abr/{filter_by_width.d.ts → utils/filter_by_width.d.ts} +1 -1
- package/dist/_esm5.processed/core/abr/{filter_by_width.js → utils/filter_by_width.js} +2 -2
- package/dist/_esm5.processed/core/abr/{select_optimal_representation.d.ts → utils/select_optimal_representation.d.ts} +1 -1
- package/dist/_esm5.processed/core/abr/{select_optimal_representation.js → utils/select_optimal_representation.js} +1 -1
- package/dist/_esm5.processed/core/api/emit_seek_events.d.ts +4 -4
- package/dist/_esm5.processed/core/api/emit_seek_events.js +12 -10
- package/dist/_esm5.processed/core/api/index.d.ts +3 -1
- package/dist/_esm5.processed/core/api/index.js +2 -0
- package/dist/_esm5.processed/core/api/option_utils.js +4 -4
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +280 -0
- package/dist/_esm5.processed/core/api/playback_observer.js +461 -0
- package/dist/_esm5.processed/core/api/public_api.d.ts +8 -7
- package/dist/_esm5.processed/core/api/public_api.js +98 -94
- package/dist/_esm5.processed/core/api/track_choice_manager.js +3 -3
- package/dist/_esm5.processed/core/eme/__tests__/__global__/utils.js +1 -0
- package/dist/_esm5.processed/core/eme/attach_media_keys.js +1 -2
- package/dist/_esm5.processed/core/eme/check_key_statuses.js +4 -5
- package/dist/_esm5.processed/core/eme/clean_old_loaded_sessions.js +1 -2
- package/dist/_esm5.processed/core/eme/clear_eme_session.js +6 -2
- package/dist/_esm5.processed/core/eme/create_session.js +1 -2
- package/dist/_esm5.processed/core/eme/dispose_media_keys.js +2 -3
- package/dist/_esm5.processed/core/eme/eme_manager.js +4 -5
- package/dist/_esm5.processed/core/eme/find_key_system.js +4 -5
- package/dist/_esm5.processed/core/eme/get_media_keys.js +2 -3
- package/dist/_esm5.processed/core/eme/get_session.js +1 -2
- package/dist/_esm5.processed/core/eme/init_media_keys.js +5 -5
- package/dist/_esm5.processed/core/eme/session_events_listener.js +6 -7
- package/dist/_esm5.processed/core/eme/set_server_certificate.js +8 -3
- package/dist/_esm5.processed/core/eme/types.d.ts +12 -4
- package/dist/_esm5.processed/core/eme/utils/close_session.js +2 -3
- package/dist/_esm5.processed/core/eme/utils/is_session_usable.js +1 -1
- package/dist/_esm5.processed/core/eme/utils/loaded_sessions_store.js +3 -4
- package/dist/_esm5.processed/core/eme/utils/persistent_sessions_store.js +3 -3
- package/dist/_esm5.processed/core/fetchers/index.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +2 -2
- package/dist/_esm5.processed/core/fetchers/segment/index.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +12 -29
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +3 -7
- package/dist/_esm5.processed/core/fetchers/segment/prioritizer.d.ts +53 -53
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +42 -11
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +118 -46
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +21 -20
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +9 -8
- package/dist/_esm5.processed/core/init/create_eme_manager.js +1 -2
- package/dist/_esm5.processed/core/init/create_media_source.js +3 -4
- package/dist/_esm5.processed/core/init/create_stream_playback_observer.d.ts +39 -0
- package/dist/_esm5.processed/core/init/create_stream_playback_observer.js +50 -0
- package/dist/_esm5.processed/core/init/duration_updater.js +16 -7
- package/dist/_esm5.processed/core/init/emit_loaded_event.d.ts +4 -3
- package/dist/_esm5.processed/core/init/emit_loaded_event.js +8 -8
- package/dist/_esm5.processed/core/init/end_of_stream.js +1 -2
- package/dist/_esm5.processed/core/init/get_initial_time.js +2 -3
- package/dist/_esm5.processed/core/init/initial_seek_and_play.d.ts +32 -31
- package/dist/_esm5.processed/core/init/initial_seek_and_play.js +25 -32
- package/dist/_esm5.processed/core/init/initialize_directfile.d.ts +6 -5
- package/dist/_esm5.processed/core/init/initialize_directfile.js +16 -12
- package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +10 -10
- package/dist/_esm5.processed/core/init/initialize_media_source.js +18 -12
- package/dist/_esm5.processed/core/init/load_on_media_source.d.ts +8 -11
- package/dist/_esm5.processed/core/init/load_on_media_source.js +16 -19
- package/dist/_esm5.processed/core/init/manifest_update_scheduler.js +8 -7
- package/dist/_esm5.processed/core/init/stall_avoider.d.ts +4 -6
- package/dist/_esm5.processed/core/init/stall_avoider.js +56 -42
- package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.d.ts +2 -2
- package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.js +20 -15
- package/dist/_esm5.processed/core/init/throw_on_media_error.js +1 -2
- package/dist/_esm5.processed/core/init/types.d.ts +0 -20
- package/dist/_esm5.processed/core/init/update_playback_rate.d.ts +5 -4
- package/dist/_esm5.processed/core/init/update_playback_rate.js +10 -11
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +4 -4
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +12 -7
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +8 -7
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +9 -10
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +4 -4
- package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +2 -2
- package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +2 -2
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +1 -12
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +10 -10
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +1 -1
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +15 -13
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +36 -23
- package/dist/_esm5.processed/core/stream/adaptation/create_representation_estimator.d.ts +9 -17
- package/dist/_esm5.processed/core/stream/adaptation/create_representation_estimator.js +11 -20
- package/dist/_esm5.processed/core/stream/adaptation/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/orchestrator/active_period_emitter.js +5 -6
- package/dist/_esm5.processed/core/stream/orchestrator/are_streams_complete.js +1 -2
- package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +10 -8
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +22 -21
- package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.d.ts +6 -4
- package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.js +11 -10
- package/dist/_esm5.processed/core/stream/period/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +23 -7
- package/dist/_esm5.processed/core/stream/period/period_stream.js +38 -24
- package/dist/_esm5.processed/core/stream/reload_after_switch.d.ts +5 -4
- package/dist/_esm5.processed/core/stream/reload_after_switch.js +8 -7
- package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.d.ts +4 -2
- package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.js +10 -8
- package/dist/_esm5.processed/core/stream/representation/downloading_queue.d.ts +9 -9
- package/dist/_esm5.processed/core/stream/representation/downloading_queue.js +10 -12
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.d.ts +1 -3
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +6 -8
- package/dist/_esm5.processed/core/stream/representation/get_buffer_status.d.ts +3 -7
- package/dist/_esm5.processed/core/stream/representation/get_buffer_status.js +7 -8
- package/dist/_esm5.processed/core/stream/representation/get_needed_segments.js +1 -1
- package/dist/_esm5.processed/core/stream/representation/get_segment_priority.d.ts +6 -9
- package/dist/_esm5.processed/core/stream/representation/get_segment_priority.js +7 -8
- package/dist/_esm5.processed/core/stream/representation/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/representation/push_init_segment.d.ts +4 -2
- package/dist/_esm5.processed/core/stream/representation/push_init_segment.js +3 -5
- package/dist/_esm5.processed/core/stream/representation/push_media_segment.d.ts +6 -4
- package/dist/_esm5.processed/core/stream/representation/push_media_segment.js +3 -5
- package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +9 -12
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +30 -21
- package/dist/_esm5.processed/errors/error_message.js +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/create_request.d.ts +5 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/create_request.js +21 -8
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/get_initialized_source_buffer.js +2 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_segments.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_segments.js +4 -0
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/push_data.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.js +17 -6
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +1 -2
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -1
- package/dist/_esm5.processed/features/initialize_features.js +47 -44
- package/dist/_esm5.processed/index.js +2 -2
- package/dist/_esm5.processed/manifest/index.d.ts +2 -2
- package/dist/_esm5.processed/manifest/index.js +2 -2
- package/dist/_esm5.processed/manifest/representation.js +1 -1
- package/dist/_esm5.processed/manifest/representation_index/static.js +1 -0
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +24 -3
- package/dist/_esm5.processed/manifest/update_period_in_place.js +1 -1
- package/dist/_esm5.processed/manifest/{are_same_content.d.ts → utils.d.ts} +9 -7
- package/dist/_esm5.processed/manifest/{are_same_content.js → utils.js} +18 -1
- package/dist/_esm5.processed/minimal.js +2 -2
- package/dist/_esm5.processed/parsers/containers/isobmff/get_box.d.ts +18 -9
- package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +32 -9
- package/dist/_esm5.processed/parsers/containers/isobmff/read.d.ts +18 -5
- package/dist/_esm5.processed/parsers/containers/isobmff/read.js +28 -6
- package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +52 -47
- package/dist/_esm5.processed/parsers/images/bif.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +2 -1
- 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 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +11 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +10 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +6 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +5 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +3 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +19 -18
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +14 -8
- 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 +7 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +3 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +5 -10
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +3 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +17 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.d.ts +7 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +22 -21
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +10 -0
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +9 -9
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +24 -0
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +7 -5
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +12 -9
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +5 -2
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +8 -0
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +11 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +11 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +7 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +13 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +23 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +3 -1
- package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +11 -3
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +5 -5
- package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +3 -6
- package/dist/_esm5.processed/parsers/texttracks/sami/html.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/sami/native.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +13 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +4 -4
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +5 -5
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +1 -1
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +89 -20
- package/dist/_esm5.processed/transports/dash/segment_loader.js +1 -1
- package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/local/segment_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +1 -1
- package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +2 -2
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +3 -3
- package/dist/_esm5.processed/transports/types.d.ts +29 -15
- package/dist/_esm5.processed/transports/utils/byte_range.js +2 -2
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +1 -1
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +6 -1
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +6 -4
- package/dist/_esm5.processed/utils/assert.js +3 -3
- package/dist/_esm5.processed/utils/concat_map_latest.js +1 -2
- package/dist/_esm5.processed/utils/defer_subscriptions.js +1 -2
- package/dist/_esm5.processed/utils/filter_map.js +1 -2
- package/dist/_esm5.processed/utils/reference.d.ts +108 -0
- package/dist/_esm5.processed/utils/reference.js +137 -0
- package/dist/_esm5.processed/utils/request/fetch.d.ts +1 -1
- package/dist/_esm5.processed/utils/request/fetch.js +3 -3
- package/dist/_esm5.processed/utils/request/xhr.d.ts +1 -1
- package/dist/_esm5.processed/utils/request/xhr.js +1 -1
- package/dist/_esm5.processed/utils/rx-retry_with_backoff.js +1 -2
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.d.ts +1 -15
- package/dist/rx-player.js +3666 -2470
- package/dist/rx-player.min.d.ts +1 -15
- package/dist/rx-player.min.js +1 -1
- package/jest.config.js +28 -1
- package/package.json +43 -43
- package/scripts/build/constants.d.ts +50 -0
- package/scripts/build/generate_build.js +1 -189
- package/scripts/doc-generator/construct_table_of_contents.js +31 -24
- package/scripts/doc-generator/convert_MD_to_HMTL.js +4 -8
- package/scripts/doc-generator/create_documentation.js +331 -0
- package/scripts/doc-generator/create_documentation_page.js +209 -0
- package/scripts/doc-generator/create_page.js +117 -35
- package/scripts/doc-generator/generate_header_html.js +148 -0
- package/scripts/doc-generator/generate_page_html.js +116 -0
- package/scripts/doc-generator/generate_page_list_html.js +93 -0
- package/scripts/doc-generator/generate_sidebar_html.js +88 -0
- package/scripts/doc-generator/get_search_data_for_content.js +137 -0
- package/scripts/doc-generator/index.js +14 -15
- package/scripts/doc-generator/parse_doc_configs.js +327 -0
- package/scripts/doc-generator/scripts/lunr.js +10 -0
- package/scripts/doc-generator/scripts/script.js +451 -0
- package/scripts/doc-generator/styles/style.css +712 -144
- package/scripts/doc-generator/utils.js +85 -0
- package/scripts/fast_demo_build.js +143 -0
- package/scripts/generate_documentation_list.js +6 -2
- package/scripts/generate_full_demo.js +26 -49
- package/scripts/start_demo_web_server.js +14 -4
- package/scripts/update-version +1 -1
- package/sonar-project.properties +2 -1
- package/src/compat/__tests__/add_text_track.test.ts +1 -0
- package/src/compat/__tests__/clear_element_src.test.ts +55 -28
- package/src/compat/__tests__/set_element_src.test.ts +2 -2
- package/src/compat/__tests__/when_loaded_metadata.test.ts +4 -5
- package/src/compat/__tests__/when_media_source_open.test.ts +4 -5
- package/src/compat/clear_element_src.ts +8 -6
- package/src/compat/eme/close_session.ts +3 -5
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +1 -1
- package/src/compat/eme/custom_media_keys/index.ts +6 -6
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +6 -3
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +1 -1
- package/src/compat/eme/generate_key_request.ts +1 -1
- package/src/compat/eme/load_session.ts +4 -6
- package/src/compat/event_listeners.ts +12 -21
- package/src/compat/on_height_width_change.ts +3 -5
- package/src/compat/set_element_src.ts +1 -1
- package/src/compat/when_loaded_metadata.ts +1 -1
- package/src/compat/when_media_source_open.ts +1 -1
- package/src/config.ts +4 -9
- package/src/core/abr/README.md +7 -7
- package/src/core/abr/abr_manager.ts +62 -21
- package/src/core/abr/bandwidth_estimator.ts +1 -1
- package/src/core/abr/buffer_based_chooser.ts +8 -6
- package/src/core/abr/get_buffer_levels.ts +3 -0
- package/src/core/abr/get_estimate_from_buffer_levels.ts +4 -4
- package/src/core/abr/guess_based_chooser.ts +308 -0
- package/src/core/abr/index.ts +7 -3
- package/src/core/abr/last_estimate_storage.ts +79 -0
- package/src/core/abr/network_analyzer.ts +74 -31
- package/src/core/abr/pending_requests_store.ts +76 -42
- package/src/core/abr/representation_estimator.ts +200 -125
- package/src/core/abr/representation_score_calculator.ts +33 -26
- package/src/core/abr/{__tests__ → utils/__tests__}/ewma.test.ts +0 -0
- package/src/core/abr/{__tests__ → utils/__tests__}/filter_by_bitrate.test.ts +1 -1
- package/src/core/abr/{__tests__ → utils/__tests__}/filter_by_width.test.ts +1 -1
- package/src/core/abr/{__tests__ → utils/__tests__}/select_optimal_representation.test.ts +1 -1
- package/src/core/abr/{ewma.ts → utils/ewma.ts} +0 -0
- package/src/core/abr/{filter_by_bitrate.ts → utils/filter_by_bitrate.ts} +2 -2
- package/src/core/abr/{filter_by_width.ts → utils/filter_by_width.ts} +3 -3
- package/src/core/abr/{select_optimal_representation.ts → utils/select_optimal_representation.ts} +2 -2
- package/src/core/api/README.md +4 -3
- package/src/core/api/__tests__/option_utils.test.ts +1 -0
- package/src/core/api/emit_seek_events.ts +21 -20
- package/src/core/api/index.ts +6 -2
- package/src/core/api/playback_observer.ts +768 -0
- package/src/core/api/public_api.ts +111 -111
- package/src/core/api/track_choice_manager.ts +6 -3
- package/src/core/eme/__tests__/__global__/get_license.test.ts +5 -3
- package/src/core/eme/__tests__/__global__/init_data.test.ts +11 -12
- package/src/core/eme/__tests__/__global__/media_key_system_access.test.ts +2 -1
- package/src/core/eme/__tests__/__global__/media_keys.test.ts +5 -8
- package/src/core/eme/__tests__/__global__/server_certificate.test.ts +8 -6
- package/src/core/eme/__tests__/__global__/utils.ts +1 -0
- package/src/core/eme/__tests__/init_media_keys.test.ts +6 -65
- package/src/core/eme/attach_media_keys.ts +2 -1
- package/src/core/eme/check_key_statuses.ts +10 -8
- package/src/core/eme/clean_old_loaded_sessions.ts +2 -4
- package/src/core/eme/clear_eme_session.ts +6 -1
- package/src/core/eme/create_session.ts +3 -5
- package/src/core/eme/dispose_media_keys.ts +2 -2
- package/src/core/eme/eme_manager.ts +10 -12
- package/src/core/eme/find_key_system.ts +3 -5
- package/src/core/eme/get_media_keys.ts +4 -6
- package/src/core/eme/get_session.ts +2 -4
- package/src/core/eme/init_media_keys.ts +9 -9
- package/src/core/eme/session_events_listener.ts +14 -15
- package/src/core/eme/set_server_certificate.ts +9 -5
- package/src/core/eme/types.ts +15 -4
- package/src/core/eme/utils/close_session.ts +7 -7
- package/src/core/eme/utils/is_session_usable.ts +1 -1
- package/src/core/eme/utils/loaded_sessions_store.ts +2 -2
- package/src/core/eme/utils/persistent_sessions_store.ts +2 -2
- package/src/core/fetchers/index.ts +2 -2
- package/src/core/fetchers/manifest/manifest_fetcher.ts +1 -1
- package/src/core/fetchers/segment/__tests__/prioritizer.test.ts +3 -4
- package/src/core/fetchers/segment/index.ts +2 -2
- package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +37 -45
- package/src/core/fetchers/segment/prioritizer.ts +82 -82
- package/src/core/fetchers/segment/segment_fetcher.ts +178 -80
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +23 -31
- package/src/core/init/create_eme_manager.ts +1 -1
- package/src/core/init/create_media_source.ts +5 -7
- package/src/core/init/create_stream_playback_observer.ts +88 -0
- package/src/core/init/duration_updater.ts +20 -17
- package/src/core/init/emit_loaded_event.ts +11 -15
- package/src/core/init/end_of_stream.ts +2 -4
- package/src/core/init/get_initial_time.ts +0 -1
- package/src/core/init/initial_seek_and_play.ts +67 -51
- package/src/core/init/initialize_directfile.ts +26 -35
- package/src/core/init/initialize_media_source.ts +28 -28
- package/src/core/init/load_on_media_source.ts +51 -58
- package/src/core/init/manifest_update_scheduler.ts +11 -12
- package/src/core/init/stall_avoider.ts +64 -47
- package/src/core/init/stream_events_emitter/stream_events_emitter.ts +24 -21
- package/src/core/init/throw_on_media_error.ts +1 -1
- package/src/core/init/types.ts +0 -24
- package/src/core/init/update_playback_rate.ts +15 -16
- package/src/core/segment_buffers/README.md +3 -3
- package/src/core/segment_buffers/garbage_collector.ts +15 -11
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +10 -7
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +14 -16
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +1 -1
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +4 -4
- package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +2 -2
- package/src/core/segment_buffers/inventory/buffered_history.ts +2 -2
- package/src/core/segment_buffers/inventory/segment_inventory.ts +1 -13
- package/src/core/stream/adaptation/adaptation_stream.ts +78 -56
- package/src/core/stream/adaptation/create_representation_estimator.ts +19 -45
- package/src/core/stream/adaptation/index.ts +2 -2
- package/src/core/stream/index.ts +2 -2
- package/src/core/stream/orchestrator/active_period_emitter.ts +6 -8
- package/src/core/stream/orchestrator/are_streams_complete.ts +2 -4
- package/src/core/stream/orchestrator/index.ts +2 -2
- package/src/core/stream/orchestrator/stream_orchestrator.ts +58 -49
- package/src/core/stream/period/create_empty_adaptation_stream.ts +14 -10
- package/src/core/stream/period/index.ts +2 -2
- package/src/core/stream/period/period_stream.ts +118 -75
- package/src/core/stream/reload_after_switch.ts +13 -10
- package/src/core/stream/representation/append_segment_to_buffer.ts +20 -16
- package/src/core/stream/representation/downloading_queue.ts +21 -24
- package/src/core/stream/representation/force_garbage_collection.ts +16 -23
- package/src/core/stream/representation/get_buffer_status.ts +9 -11
- package/src/core/stream/representation/get_needed_segments.ts +1 -1
- package/src/core/stream/representation/get_segment_priority.ts +8 -10
- package/src/core/stream/representation/index.ts +2 -2
- package/src/core/stream/representation/push_init_segment.ts +19 -16
- package/src/core/stream/representation/push_media_segment.ts +21 -17
- package/src/core/stream/representation/representation_stream.ts +50 -47
- package/src/experimental/features/__tests__/dash_wasm.test.ts +1 -0
- package/src/experimental/tools/VideoThumbnailLoader/create_request.ts +32 -17
- package/src/experimental/tools/VideoThumbnailLoader/get_initialized_source_buffer.ts +6 -9
- package/src/experimental/tools/VideoThumbnailLoader/load_segments.ts +12 -6
- package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +4 -2
- package/src/experimental/tools/VideoThumbnailLoader/push_data.ts +2 -2
- package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +21 -12
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +1 -1
- package/src/experimental/tools/createMetaplaylist/index.ts +1 -1
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +4 -2
- package/src/features/__tests__/initialize_features.test.ts +191 -101
- package/src/features/initialize_features.ts +40 -37
- package/src/features/list/__tests__/bif_parser.test.ts +1 -0
- package/src/features/list/__tests__/dash.test.ts +1 -0
- package/src/features/list/__tests__/directfile.test.ts +1 -0
- package/src/features/list/__tests__/eme.test.ts +1 -0
- package/src/features/list/__tests__/html_sami_parser.test.ts +1 -0
- package/src/features/list/__tests__/html_srt_parser.test.ts +1 -0
- package/src/features/list/__tests__/html_text_buffer.test.ts +1 -0
- package/src/features/list/__tests__/html_ttml_parser.test.ts +1 -0
- package/src/features/list/__tests__/html_vtt_parser.test.ts +1 -0
- package/src/features/list/__tests__/image_buffer.test.ts +1 -0
- package/src/features/list/__tests__/native_sami_parser.test.ts +1 -0
- package/src/features/list/__tests__/native_srt_parser.test.ts +1 -0
- package/src/features/list/__tests__/native_text_buffer.test.ts +1 -0
- package/src/features/list/__tests__/native_ttml_parser.test.ts +1 -0
- package/src/features/list/__tests__/native_vtt_parser.test.ts +1 -0
- package/src/features/list/__tests__/smooth.test.ts +1 -0
- package/src/index.ts +2 -2
- package/src/manifest/__tests__/manifest.test.ts +1 -0
- package/src/manifest/index.ts +7 -1
- package/src/manifest/representation_index/__tests__/static.test.ts +1 -0
- package/src/manifest/representation_index/static.ts +1 -0
- package/src/manifest/representation_index/types.ts +25 -3
- package/src/manifest/{are_same_content.ts → utils.ts} +26 -9
- package/src/minimal.ts +3 -2
- package/src/parsers/containers/isobmff/get_box.ts +35 -8
- package/src/parsers/containers/isobmff/read.ts +32 -5
- package/src/parsers/containers/isobmff/utils.ts +52 -47
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +4 -4
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +4 -2
- package/src/parsers/manifest/dash/common/get_clock_offset.ts +3 -3
- package/src/parsers/manifest/dash/common/get_http_utc-timing_url.ts +15 -6
- package/src/parsers/manifest/dash/common/indexes/base.ts +5 -3
- package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +1 -0
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +9 -9
- package/src/parsers/manifest/dash/common/indexes/list.ts +6 -3
- package/src/parsers/manifest/dash/common/indexes/template.ts +13 -6
- package/src/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.ts +10 -9
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +13 -5
- package/src/parsers/manifest/dash/common/indexes/tokens.ts +4 -4
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +10 -4
- package/src/parsers/manifest/dash/common/parse_mpd.ts +21 -13
- package/src/parsers/manifest/dash/common/parse_periods.ts +7 -8
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +12 -12
- package/src/parsers/manifest/dash/common/parse_representations.ts +23 -4
- package/src/parsers/manifest/dash/common/resolve_base_urls.ts +33 -24
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +12 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +13 -9
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +28 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.ts +8 -5
- package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +3 -0
- package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +5 -2
- package/src/parsers/manifest/dash/node_parser_types.ts +8 -0
- package/src/parsers/manifest/dash/parsers_types.ts +8 -2
- package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +1 -8
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +26 -5
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +75 -521
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +7 -4
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +13 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +8 -1
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +6 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +6 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +14 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +26 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.ts +6 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/XLink.ts +7 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +7 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +1 -1
- package/src/parsers/manifest/local/representation_index.ts +2 -0
- package/src/parsers/manifest/smooth/create_parser.ts +1 -1
- package/src/parsers/manifest/smooth/representation_index.ts +3 -1
- package/src/parsers/manifest/utils/clear_timeline_from_position.ts +1 -1
- package/src/parsers/manifest/utils/index_helpers.ts +21 -11
- package/src/parsers/manifest/utils/is_segment_still_available.ts +4 -6
- package/src/parsers/texttracks/sami/html.ts +1 -1
- package/src/parsers/texttracks/sami/native.ts +1 -1
- package/src/parsers/texttracks/ttml/html/apply_font_size.ts +11 -1
- package/src/transports/dash/image_pipelines.ts +4 -4
- package/src/transports/dash/init_segment_loader.ts +1 -1
- package/src/transports/dash/manifest_parser.ts +99 -25
- package/src/transports/dash/segment_loader.ts +1 -1
- package/src/transports/dash/segment_parser.ts +4 -4
- package/src/transports/dash/text_parser.ts +8 -8
- package/src/transports/local/segment_loader.ts +2 -2
- package/src/transports/local/segment_parser.ts +4 -4
- package/src/transports/local/text_parser.ts +8 -8
- package/src/transports/metaplaylist/pipelines.ts +11 -11
- package/src/transports/smooth/extract_timings_infos.ts +1 -1
- package/src/transports/smooth/pipelines.ts +8 -8
- package/src/transports/smooth/segment_loader.ts +3 -3
- package/src/transports/types.ts +31 -17
- package/src/transports/utils/call_custom_manifest_loader.ts +1 -1
- package/src/transports/utils/get_isobmff_timing_infos.ts +6 -1
- package/src/transports/utils/parse_text_track.ts +4 -2
- package/src/typings/globals.d.ts +57 -40
- package/src/utils/__tests__/concat_map_latest.test.ts +7 -9
- package/src/utils/__tests__/defer_subscriptions.test.ts +4 -4
- package/src/utils/__tests__/event_emitter.test.ts +1 -1
- package/src/utils/__tests__/initialization_segment_cache.test.ts +7 -0
- package/src/utils/assert.ts +1 -1
- package/src/utils/concat_map_latest.ts +2 -4
- package/src/utils/defer_subscriptions.ts +1 -1
- package/src/utils/filter_map.ts +2 -4
- package/src/utils/reference.ts +234 -0
- package/src/utils/request/fetch.ts +3 -3
- package/src/utils/request/xhr.ts +2 -2
- package/src/utils/rx-retry_with_backoff.ts +2 -4
- package/tsconfig.json +4 -1
- package/tsconfig.modules.json +8 -3
- package/dist/_esm5.processed/core/abr/create_filters.d.ts +0 -27
- package/dist/_esm5.processed/core/abr/create_filters.js +0 -56
- package/dist/_esm5.processed/core/api/clock.d.ts +0 -157
- package/dist/_esm5.processed/core/api/clock.js +0 -363
- package/dist/_esm5.processed/core/init/create_stream_clock.d.ts +0 -34
- package/dist/_esm5.processed/core/init/create_stream_clock.js +0 -55
- package/dist/_esm5.processed/parsers/manifest/dash/common/extract_minimum_availability_time_offset.d.ts +0 -31
- package/dist/_esm5.processed/parsers/manifest/dash/common/extract_minimum_availability_time_offset.js +0 -37
- package/scripts/doc-generator/construct_html.js +0 -135
- package/scripts/doc-generator/construct_page_list.js +0 -120
- package/scripts/doc-generator/create_for_dir.js +0 -151
- package/scripts/doc-generator/get_files_to_convert.js +0 -71
- package/scripts/doc-generator/mkdir_parent.js +0 -21
- package/scripts/doc-generator/read_title_from_md.js +0 -22
- package/scripts/doc-generator/remove_toc_from_md.js +0 -20
- package/src/core/abr/create_filters.ts +0 -59
- package/src/core/api/clock.ts +0 -573
- package/src/core/init/create_stream_clock.ts +0 -93
- package/src/parsers/manifest/dash/common/extract_minimum_availability_time_offset.ts +0 -41
|
@@ -179,7 +179,8 @@ export interface ISegmentPipeline<TLoadedFormat, TParsedSegmentDataFormat> {
|
|
|
179
179
|
*/
|
|
180
180
|
export declare type ISegmentLoader<TLoadedFormat> = (url: string | null, content: ISegmentContext, cancelSignal: CancellationSignal, callbacks: ISegmentLoaderCallbacks<TLoadedFormat>) => Promise<ISegmentLoaderResultSegmentCreated<TLoadedFormat> | ISegmentLoaderResultSegmentLoaded<TLoadedFormat> | ISegmentLoaderResultChunkedComplete>;
|
|
181
181
|
/**
|
|
182
|
-
* Segment parser function, allowing to parse a
|
|
182
|
+
* Segment parser function, allowing to parse a chunk (which may be a sub-part
|
|
183
|
+
* of a segment) of any type.
|
|
183
184
|
*
|
|
184
185
|
* This function will throw if it encounters any error it cannot recover from.
|
|
185
186
|
*/
|
|
@@ -211,15 +212,15 @@ initTimescale: number | undefined) =>
|
|
|
211
212
|
* The parsed data.
|
|
212
213
|
*
|
|
213
214
|
* Can be of two types:
|
|
214
|
-
* - `
|
|
215
|
+
* - `ISegmentParserParsedInitChunk`: When the parsed chunk was part of an
|
|
215
216
|
* initialization segment.
|
|
216
217
|
* Such segments only serve to initialize the decoder and do not contain
|
|
217
218
|
* any decodable media data.
|
|
218
|
-
* - `
|
|
219
|
-
* segment.
|
|
219
|
+
* - `ISegmentParserParsedMediaChunk`: When the parsed chunk was part of a
|
|
220
|
+
* media segment.
|
|
220
221
|
* Such segments generally contain decodable media data.
|
|
221
222
|
*/
|
|
222
|
-
|
|
223
|
+
ISegmentParserParsedInitChunk<TParsedSegmentDataFormat> | ISegmentParserParsedMediaChunk<TParsedSegmentDataFormat>;
|
|
223
224
|
export interface IManifestParserOptions {
|
|
224
225
|
/**
|
|
225
226
|
* If set, offset to add to `performance.now()` to obtain the current
|
|
@@ -317,7 +318,10 @@ export interface IManifestParserRequestNeeded {
|
|
|
317
318
|
export interface IChunkTimeInfo {
|
|
318
319
|
/**
|
|
319
320
|
* Difference between the latest and the earliest presentation time
|
|
320
|
-
* available in that
|
|
321
|
+
* available in that chunk, in seconds.
|
|
322
|
+
*
|
|
323
|
+
* If multiple chunks are present in a single segment (e.g. low-latency CMAF
|
|
324
|
+
* chunks, this is only the duration of the current chunk).
|
|
321
325
|
*
|
|
322
326
|
* Either `undefined` or set to `0` for an initialization segment.
|
|
323
327
|
*/
|
|
@@ -475,6 +479,7 @@ export interface ISegmentLoaderCallbacks<T> {
|
|
|
475
479
|
*/
|
|
476
480
|
onNewChunk: (data: T) => void;
|
|
477
481
|
}
|
|
482
|
+
/** Information related to a pending Segment request progressing. */
|
|
478
483
|
export interface ISegmentLoadingProgressInformation {
|
|
479
484
|
/** Time since the beginning of the request so far, in seconds. */
|
|
480
485
|
duration: number;
|
|
@@ -517,7 +522,7 @@ export interface ISegmentLoaderResultSegmentCreated<T> {
|
|
|
517
522
|
/** Data emitted in a `ISegmentLoaderResultChunkedComplete`. */
|
|
518
523
|
export interface IChunkCompleteInformation {
|
|
519
524
|
/** Duration the request took to be performed, in seconds. */
|
|
520
|
-
|
|
525
|
+
requestDuration: number | undefined;
|
|
521
526
|
/**
|
|
522
527
|
* "Real" URL (post-redirection) at which the segment was loaded.
|
|
523
528
|
*
|
|
@@ -550,8 +555,11 @@ export declare type ILoadedAudioVideoSegmentFormat = Uint8Array | ArrayBuffer |
|
|
|
550
555
|
export declare type ILoadedTextSegmentFormat = Uint8Array | ArrayBuffer | string | null;
|
|
551
556
|
/** Format of a loaded image segment before parsing. */
|
|
552
557
|
export declare type ILoadedImageSegmentFormat = Uint8Array | ArrayBuffer | null;
|
|
553
|
-
/**
|
|
554
|
-
|
|
558
|
+
/**
|
|
559
|
+
* Result returned by a segment parser when it parsed a chunk from an init
|
|
560
|
+
* segment (which does not contain media data).
|
|
561
|
+
*/
|
|
562
|
+
export interface ISegmentParserParsedInitChunk<DataType> {
|
|
555
563
|
segmentType: "init";
|
|
556
564
|
/**
|
|
557
565
|
* Initialization segment that can be directly pushed to the corresponding
|
|
@@ -577,14 +585,20 @@ export interface ISegmentParserParsedInitSegment<DataType> {
|
|
|
577
585
|
protectionDataUpdate: boolean;
|
|
578
586
|
}
|
|
579
587
|
/**
|
|
580
|
-
* Result returned by a segment parser when it parsed a
|
|
581
|
-
* initialization segment).
|
|
588
|
+
* Result returned by a segment parser when it parsed a chunk from a media
|
|
589
|
+
* segment (which contains media data, unlike an initialization segment).
|
|
582
590
|
*/
|
|
583
|
-
export interface
|
|
591
|
+
export interface ISegmentParserParsedMediaChunk<DataType> {
|
|
584
592
|
segmentType: "media";
|
|
585
|
-
/**
|
|
593
|
+
/**
|
|
594
|
+
* Parsed chunk of data that can be decoded.
|
|
595
|
+
* `null` if no data was parsed.
|
|
596
|
+
*/
|
|
586
597
|
chunkData: DataType | null;
|
|
587
|
-
/**
|
|
598
|
+
/**
|
|
599
|
+
* Time information on this parsed chunk.
|
|
600
|
+
* `null` if unknown.
|
|
601
|
+
*/
|
|
588
602
|
chunkInfos: IChunkTimeInfo | null;
|
|
589
603
|
/**
|
|
590
604
|
* time offset, in seconds, to add to the absolute timed data defined in
|
|
@@ -636,7 +650,7 @@ export interface IRequestedData<T> {
|
|
|
636
650
|
/** The loaded response data. */
|
|
637
651
|
responseData: T;
|
|
638
652
|
/** Duration the request took to be performed, in seconds. */
|
|
639
|
-
|
|
653
|
+
requestDuration: number | undefined;
|
|
640
654
|
/**
|
|
641
655
|
* "Real" URL (post-redirection) at which the data can be loaded.
|
|
642
656
|
*
|
|
@@ -20,6 +20,6 @@
|
|
|
20
20
|
*/
|
|
21
21
|
export default function byteRange(_a) {
|
|
22
22
|
var start = _a[0], end = _a[1];
|
|
23
|
-
return end === Infinity ? "bytes="
|
|
24
|
-
"bytes="
|
|
23
|
+
return end === Infinity ? "bytes=".concat(start, "-") :
|
|
24
|
+
"bytes=".concat(start, "-").concat(end);
|
|
25
25
|
}
|
|
@@ -37,7 +37,7 @@ export default function callCustomManifestLoader(customManifestLoader, fallbackM
|
|
|
37
37
|
undefined;
|
|
38
38
|
res({ responseData: _args.data,
|
|
39
39
|
size: _args.size,
|
|
40
|
-
|
|
40
|
+
requestDuration: _args.duration,
|
|
41
41
|
url: _args.url, receivedTime: receivedTime, sendingTime: sendingTime });
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import log from "../../log";
|
|
16
17
|
import { getDurationFromTrun, getTrackFragmentDecodeTime, } from "../../parsers/containers/isobmff";
|
|
17
18
|
/**
|
|
18
19
|
* Get precize start and duration of a chunk.
|
|
@@ -37,7 +38,11 @@ export default function getISOBMFFTimingInfos(buffer, isChunked, segment, initTi
|
|
|
37
38
|
baseDecodeTime + (segment.timestampOffset * initTimescale) :
|
|
38
39
|
baseDecodeTime;
|
|
39
40
|
var trunDuration = getDurationFromTrun(buffer);
|
|
40
|
-
if (isChunked) {
|
|
41
|
+
if (isChunked || !segment.complete) {
|
|
42
|
+
if (trunDuration === undefined) {
|
|
43
|
+
log.warn("DASH: Chunked segments should indicate a duration through their" +
|
|
44
|
+
" trun boxes");
|
|
45
|
+
}
|
|
41
46
|
return { time: startTime / initTimescale,
|
|
42
47
|
duration: trunDuration !== undefined ? trunDuration / initTimescale :
|
|
43
48
|
undefined };
|
|
@@ -45,7 +45,7 @@ export function getISOBMFFTextTrackFormat(representation) {
|
|
|
45
45
|
return "vtt";
|
|
46
46
|
}
|
|
47
47
|
throw new Error("The codec used for the subtitles " +
|
|
48
|
-
|
|
48
|
+
"\"".concat(codec, "\" is not managed yet."));
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Returns the a string expliciting the format of a text track in plain text.
|
|
@@ -68,7 +68,7 @@ export function getPlainTextTrackFormat(representation) {
|
|
|
68
68
|
if (codeLC === "srt") {
|
|
69
69
|
return "srt";
|
|
70
70
|
}
|
|
71
|
-
throw new Error("could not find a text-track parser for the type "
|
|
71
|
+
throw new Error("could not find a text-track parser for the type ".concat(mimeType));
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* @param {Object} content
|
|
@@ -98,7 +98,7 @@ export function getISOBMFFEmbeddedTextTrackData(_a, chunkBytes, chunkInfos, isCh
|
|
|
98
98
|
if (chunkInfos.duration !== undefined) {
|
|
99
99
|
endTime = startTime + chunkInfos.duration;
|
|
100
100
|
}
|
|
101
|
-
else if (!isChunked) {
|
|
101
|
+
else if (!isChunked && segment.complete) {
|
|
102
102
|
endTime = startTime + segment.duration;
|
|
103
103
|
}
|
|
104
104
|
}
|
|
@@ -127,7 +127,9 @@ export function getPlainTextTrackData(_a, textTrackData, isChunked) {
|
|
|
127
127
|
}
|
|
128
128
|
else {
|
|
129
129
|
start = segment.time;
|
|
130
|
-
|
|
130
|
+
if (segment.complete) {
|
|
131
|
+
end = segment.time + segment.duration;
|
|
132
|
+
}
|
|
131
133
|
}
|
|
132
134
|
var type = getPlainTextTrackFormat(representation);
|
|
133
135
|
return { data: textTrackData, type: type, language: adaptation.language, start: start, end: end };
|
|
@@ -22,7 +22,7 @@ import isNullOrUndefined from "./is_null_or_undefined";
|
|
|
22
22
|
* @throws AssertionError - Throws if the assertion given is false
|
|
23
23
|
*/
|
|
24
24
|
export default function assert(assertion, message) {
|
|
25
|
-
if (!assertion) {
|
|
25
|
+
if (1 /* DEV */ === 0 /* CURRENT_ENV */ && !assertion) {
|
|
26
26
|
throw new AssertionError(message === undefined ? "invalid assertion" :
|
|
27
27
|
message);
|
|
28
28
|
}
|
|
@@ -38,12 +38,12 @@ export default function assert(assertion, message) {
|
|
|
38
38
|
*/
|
|
39
39
|
export function assertInterface(o, iface, name) {
|
|
40
40
|
if (name === void 0) { name = "object"; }
|
|
41
|
-
assert(!isNullOrUndefined(o), name
|
|
41
|
+
assert(!isNullOrUndefined(o), "".concat(name, " should be an object"));
|
|
42
42
|
for (var k in iface) {
|
|
43
43
|
if (iface.hasOwnProperty(k)) {
|
|
44
44
|
/* eslint-disable max-len */
|
|
45
45
|
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
|
46
|
-
assert(typeof o[k] === iface[k], name
|
|
46
|
+
assert(typeof o[k] === iface[k], "".concat(name, " should have property ").concat(k, " as a ").concat(iface[k]));
|
|
47
47
|
/* eslint-enable max-len */
|
|
48
48
|
/* eslint-enable @typescript-eslint/restrict-template-expressions */
|
|
49
49
|
}
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { concat as observableConcat, defer as observableDefer, EMPTY, } from "rxjs";
|
|
17
|
-
import { mergeMap, tap, } from "rxjs/operators";
|
|
16
|
+
import { concat as observableConcat, defer as observableDefer, EMPTY, mergeMap, tap, } from "rxjs";
|
|
18
17
|
/**
|
|
19
18
|
* Same as concatMap, but get last emitted value from source instead of unstack
|
|
20
19
|
* inner values.
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { asapScheduler, } from "rxjs";
|
|
17
|
-
import { subscribeOn } from "rxjs/operators";
|
|
16
|
+
import { asapScheduler, subscribeOn, } from "rxjs";
|
|
18
17
|
/**
|
|
19
18
|
* At subscription, instead of "running" the Observable right away, wait until
|
|
20
19
|
* the current task has finished executing before actually running this
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { defer as observableDefer, } from "rxjs";
|
|
17
|
-
import { filter, map, } from "rxjs/operators";
|
|
16
|
+
import { defer as observableDefer, filter, map, } from "rxjs";
|
|
18
17
|
/**
|
|
19
18
|
* Special kind of map which will ignore the result when the value emitted
|
|
20
19
|
* corresponds to a given token.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2015 CANAL+ Group
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Observable } from "rxjs";
|
|
17
|
+
/**
|
|
18
|
+
* A value behind a shared reference, meaning that any update to its value from
|
|
19
|
+
* anywhere can be retrieved from any other parts of the code in posession of
|
|
20
|
+
* the "same" (i.e. not cloned) `ISharedReference`.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* const myVal = 1;
|
|
25
|
+
* const myRef : ISharedReference<number> = createSharedReference(1);
|
|
26
|
+
*
|
|
27
|
+
* function DoThingsWithVal(num : number) {
|
|
28
|
+
* num = 2;
|
|
29
|
+
* }
|
|
30
|
+
*
|
|
31
|
+
* function DoThingsWithRef(num : ISharedReference<number>) {
|
|
32
|
+
* num.setValue(2);
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* myRef.asObservable().subscribe((val) => {
|
|
36
|
+
* console.log(val); // outputs first `1`, then `2`
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* DoThingsWithVal(myVal);
|
|
40
|
+
* console.log(myVal); // output: 1
|
|
41
|
+
*
|
|
42
|
+
* DoThingsWithRef(myRef);
|
|
43
|
+
* console.log(myRef.getValue()); // output: 2
|
|
44
|
+
*
|
|
45
|
+
* myRef.asObservable().subscribe((val) => {
|
|
46
|
+
* console.log(val); // outputs only `2`
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* This type was added because we found that the usage of an explicit type for
|
|
51
|
+
* those use cases makes the intent of the corresponding code clearer.
|
|
52
|
+
*/
|
|
53
|
+
export interface ISharedReference<T> {
|
|
54
|
+
/** Get the last set value for this shared reference. */
|
|
55
|
+
getValue(): T;
|
|
56
|
+
/** Update the value of this shared reference. */
|
|
57
|
+
setValue(newVal: T): void;
|
|
58
|
+
/**
|
|
59
|
+
* Returns an Observable which synchronously emits the current value (unless
|
|
60
|
+
* the `skipCurrentValue` argument has been set to `true`) and then each time
|
|
61
|
+
* a new value is set.
|
|
62
|
+
* @param {boolean} [skipCurrentValue]
|
|
63
|
+
* @returns {Observable}
|
|
64
|
+
*/
|
|
65
|
+
asObservable(skipCurrentValue?: boolean): Observable<T>;
|
|
66
|
+
/**
|
|
67
|
+
* Indicate that no new values will be emitted.
|
|
68
|
+
* Allows to automatically close all Observables generated from this shared
|
|
69
|
+
* reference.
|
|
70
|
+
*/
|
|
71
|
+
finish(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* An `ISharedReference` which can only be read and not updated.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* const myReference : ISharedReference<number> = createSharedReference(4);
|
|
79
|
+
*
|
|
80
|
+
* function shouldOnlyReadIt(roRef : IReadOnlySharedReference<number>) {
|
|
81
|
+
* console.log("current value:", roRef.getValue());
|
|
82
|
+
* }
|
|
83
|
+
*
|
|
84
|
+
* shouldOnlyReadIt(myReference); // output: "current value: 4"
|
|
85
|
+
*
|
|
86
|
+
* myReference.setValue(12);
|
|
87
|
+
* shouldOnlyReadIt(myReference); // output: "current value: 12"
|
|
88
|
+
* ```
|
|
89
|
+
*
|
|
90
|
+
* Because an `ISharedReference` is structurally compatible to a
|
|
91
|
+
* `IReadOnlySharedReference`, and because of TypeScript variance rules, it can
|
|
92
|
+
* be upcasted into a `IReadOnlySharedReference` at any time to make it clear in
|
|
93
|
+
* the code that some logic is not supposed to update the referenced value.
|
|
94
|
+
*/
|
|
95
|
+
export interface IReadOnlySharedReference<T> {
|
|
96
|
+
getValue(): T;
|
|
97
|
+
asObservable(skipCurrentValue?: boolean): Observable<T>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create an `ISharedReference` object encapsulating the mutable `initialValue`
|
|
101
|
+
* value of type T.
|
|
102
|
+
*
|
|
103
|
+
* @see ISharedReference
|
|
104
|
+
* @param {*} initialValue
|
|
105
|
+
* @returns {Observable}
|
|
106
|
+
*/
|
|
107
|
+
export declare function createSharedReference<T>(initialValue: T): ISharedReference<T>;
|
|
108
|
+
export default createSharedReference;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2015 CANAL+ Group
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Observable, } from "rxjs";
|
|
17
|
+
import log from "../log";
|
|
18
|
+
/**
|
|
19
|
+
* Create an `ISharedReference` object encapsulating the mutable `initialValue`
|
|
20
|
+
* value of type T.
|
|
21
|
+
*
|
|
22
|
+
* @see ISharedReference
|
|
23
|
+
* @param {*} initialValue
|
|
24
|
+
* @returns {Observable}
|
|
25
|
+
*/
|
|
26
|
+
export function createSharedReference(initialValue) {
|
|
27
|
+
/** Current value referenced by this `ISharedReference`. */
|
|
28
|
+
var value = initialValue;
|
|
29
|
+
/**
|
|
30
|
+
* List of currently subscribed Observables which listen to the referenced
|
|
31
|
+
* value's updates.
|
|
32
|
+
*
|
|
33
|
+
* Contains two properties:
|
|
34
|
+
* - `subscriber`: interface through which new value will be communicated.
|
|
35
|
+
* - `hasBeenUnsubscribed`: becomes `true` when the Observable becomes
|
|
36
|
+
* unsubscribed and thus when it is removed from the `subs` array.
|
|
37
|
+
* Adding this property allows to detect when a previously-added
|
|
38
|
+
* Observable has since been unsubscribed e.g. as a side-effect during a
|
|
39
|
+
* function call.
|
|
40
|
+
*/
|
|
41
|
+
var subs = [];
|
|
42
|
+
var isFinished = false;
|
|
43
|
+
return {
|
|
44
|
+
/**
|
|
45
|
+
* Returns the current value of this shared reference.
|
|
46
|
+
* @returns {*}
|
|
47
|
+
*/
|
|
48
|
+
getValue: function () {
|
|
49
|
+
return value;
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Update the value of this shared reference.
|
|
53
|
+
* @param {*}
|
|
54
|
+
*/
|
|
55
|
+
setValue: function (newVal) {
|
|
56
|
+
if (isFinished) {
|
|
57
|
+
if (0 /* CURRENT_ENV */ === 1 /* DEV */) {
|
|
58
|
+
throw new Error("Finished shared references cannot be updated");
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
log.error("Finished shared references cannot be updated");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
value = newVal;
|
|
66
|
+
if (subs.length === 0) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
var clonedSubs = subs.slice();
|
|
70
|
+
for (var _i = 0, clonedSubs_1 = clonedSubs; _i < clonedSubs_1.length; _i++) {
|
|
71
|
+
var subObj = clonedSubs_1[_i];
|
|
72
|
+
try {
|
|
73
|
+
if (!subObj.hasBeenUnsubscribed) {
|
|
74
|
+
subObj.subscriber.next(newVal);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (_) {
|
|
78
|
+
/* nothing */
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* Returns an Observable which synchronously emits the current value (unless
|
|
84
|
+
* the `skipCurrentValue` argument has been set to `true`) and then each
|
|
85
|
+
* time a new value is set.
|
|
86
|
+
* @param {boolean} [skipCurrentValue]
|
|
87
|
+
* @returns {Observable}
|
|
88
|
+
*/
|
|
89
|
+
asObservable: function (skipCurrentValue) {
|
|
90
|
+
return new Observable(function (obs) {
|
|
91
|
+
if (skipCurrentValue !== true) {
|
|
92
|
+
obs.next(value);
|
|
93
|
+
}
|
|
94
|
+
if (isFinished) {
|
|
95
|
+
obs.complete();
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
var subObj = { subscriber: obs,
|
|
99
|
+
hasBeenUnsubscribed: false };
|
|
100
|
+
subs.push(subObj);
|
|
101
|
+
return function () {
|
|
102
|
+
/**
|
|
103
|
+
* Code in here can still be running while this is happening.
|
|
104
|
+
* Set `hasBeenUnsubscribed` to `true` to avoid still using the
|
|
105
|
+
* `subscriber` from this object.
|
|
106
|
+
*/
|
|
107
|
+
subObj.hasBeenUnsubscribed = true;
|
|
108
|
+
var indexOf = subs.indexOf(subObj);
|
|
109
|
+
if (indexOf >= 0) {
|
|
110
|
+
subs.splice(indexOf, 1);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
/**
|
|
116
|
+
* Indicate that no new values will be emitted.
|
|
117
|
+
* Allows to automatically close all Observables generated from this shared
|
|
118
|
+
* reference.
|
|
119
|
+
*/
|
|
120
|
+
finish: function () {
|
|
121
|
+
isFinished = true;
|
|
122
|
+
var clonedSubs = subs.slice();
|
|
123
|
+
for (var _i = 0, clonedSubs_2 = clonedSubs; _i < clonedSubs_2.length; _i++) {
|
|
124
|
+
var subObj = clonedSubs_2[_i];
|
|
125
|
+
try {
|
|
126
|
+
if (!subObj.hasBeenUnsubscribed) {
|
|
127
|
+
subObj.subscriber.complete();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (_) {
|
|
131
|
+
/* nothing */
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
export default createSharedReference;
|
|
@@ -3,7 +3,7 @@ import { CancellationSignal } from "../task_canceller";
|
|
|
3
3
|
/** Object returned by `fetchRequest` after the fetch operation succeeded. */
|
|
4
4
|
export interface IFetchedStreamComplete {
|
|
5
5
|
/** Duration of the whole request, in milliseconds. */
|
|
6
|
-
|
|
6
|
+
requestDuration: number;
|
|
7
7
|
/** Result of `performance.now()` at the time the request was received. */
|
|
8
8
|
receivedTime: number;
|
|
9
9
|
/** Result of `performance.now()` at the time the request was started. */
|
|
@@ -126,7 +126,7 @@ export default function fetchRequest(options) {
|
|
|
126
126
|
return readBufferAndSendEvents();
|
|
127
127
|
function readBufferAndSendEvents() {
|
|
128
128
|
return __awaiter(this, void 0, void 0, function () {
|
|
129
|
-
var data, currentTime, dataInfo, receivedTime,
|
|
129
|
+
var data, currentTime, dataInfo, receivedTime, requestDuration;
|
|
130
130
|
return __generator(this, function (_a) {
|
|
131
131
|
switch (_a.label) {
|
|
132
132
|
case 0: return [4 /*yield*/, reader.read()];
|
|
@@ -143,8 +143,8 @@ export default function fetchRequest(options) {
|
|
|
143
143
|
else if (data.done) {
|
|
144
144
|
deregisterCancelLstnr();
|
|
145
145
|
receivedTime = performance.now();
|
|
146
|
-
|
|
147
|
-
return [2 /*return*/, {
|
|
146
|
+
requestDuration = receivedTime - sendingTime;
|
|
147
|
+
return [2 /*return*/, { requestDuration: requestDuration, receivedTime: receivedTime, sendingTime: sendingTime, size: size, status: response.status,
|
|
148
148
|
url: response.url }];
|
|
149
149
|
}
|
|
150
150
|
return [2 /*return*/, readBufferAndSendEvents()];
|
|
@@ -130,7 +130,7 @@ export interface IRequestOptions<ResponseType> {
|
|
|
130
130
|
/** Data emitted by `request`'s Promise when the request succeeded. */
|
|
131
131
|
export interface IRequestResponse<T, U> {
|
|
132
132
|
/** Time taken by the request, in milliseconds. */
|
|
133
|
-
|
|
133
|
+
requestDuration: number;
|
|
134
134
|
/** Time (relative to the "time origin") at which the request ended. */
|
|
135
135
|
receivedTime: number;
|
|
136
136
|
/** Data requested. Its type will depend on the responseType. */
|
|
@@ -113,7 +113,7 @@ export default function request(options) {
|
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
115
|
resolve({ status: status_1, url: _url,
|
|
116
|
-
responseType: loadedResponseType, sendingTime: sendingTime, receivedTime: receivedTime,
|
|
116
|
+
responseType: loadedResponseType, sendingTime: sendingTime, receivedTime: receivedTime, requestDuration: receivedTime - sendingTime,
|
|
117
117
|
size: totalSize, responseData: responseData });
|
|
118
118
|
}
|
|
119
119
|
else {
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { timer as observableTimer, } from "rxjs";
|
|
17
|
-
import { catchError, mergeMap, } from "rxjs/operators";
|
|
16
|
+
import { catchError, mergeMap, timer as observableTimer, } from "rxjs";
|
|
18
17
|
import getFuzzedDelay from "./get_fuzzed_delay";
|
|
19
18
|
import isNullOrUndefined from "./is_null_or_undefined";
|
|
20
19
|
/**
|
package/dist/mpd-parser.wasm
CHANGED
|
Binary file
|
package/dist/rx-player.d.ts
CHANGED
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
1
|
+
|
|
16
2
|
import RxPlayer from "./_esm5.processed/index";
|
|
17
3
|
export default RxPlayer;
|