rx-player 4.0.0-dev.2023110700 → 4.0.0-dev.2023120600
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 +18 -226
- package/FILES.md +1 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -3
- package/dist/_esm5.processed/compat/add_text_track.js +4 -7
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +0 -7
- package/dist/_esm5.processed/compat/event_listeners.d.ts +2 -15
- package/dist/_esm5.processed/compat/event_listeners.js +2 -37
- package/dist/_esm5.processed/compat/index.d.ts +1 -3
- package/dist/_esm5.processed/compat/index.js +1 -3
- package/dist/_esm5.processed/config.d.ts +9 -21
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +0 -58
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +14 -54
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +2 -8
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +2 -11
- package/dist/_esm5.processed/core/api/debug/buffer_graph.js +2 -6
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +13 -32
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +3 -3
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +14 -35
- package/dist/_esm5.processed/core/api/option_utils.js +47 -230
- package/dist/_esm5.processed/core/api/public_api.d.ts +92 -266
- package/dist/_esm5.processed/core/api/public_api.js +451 -807
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.d.ts +3 -2
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.js +3 -2
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.d.ts → track_management/media_element_tracks_store.d.ts} +15 -75
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.js → track_management/media_element_tracks_store.js} +74 -193
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +84 -0
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +158 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +406 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.js +932 -0
- package/dist/_esm5.processed/core/api/utils.d.ts +1 -0
- package/dist/_esm5.processed/core/api/utils.js +28 -11
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +3 -3
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +83 -71
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +6 -5
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +10 -72
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +4 -4
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +6 -4
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +1 -3
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +7 -26
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +3 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +16 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -3
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +1 -6
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +4 -41
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +1 -1
- package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +1 -8
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +5 -19
- package/dist/_esm5.processed/core/init/types.d.ts +5 -15
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +2 -36
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +2 -82
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +19 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +1 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/index.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +33 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +49 -0
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +0 -1
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +2 -16
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +0 -15
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +183 -93
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +39 -0
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +133 -0
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +27 -13
- package/dist/_esm5.processed/core/stream/index.d.ts +2 -3
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -0
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +5 -7
- package/dist/_esm5.processed/core/stream/period/period_stream.js +13 -12
- package/dist/_esm5.processed/core/stream/period/types.d.ts +5 -14
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +2 -4
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +10 -46
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +29 -23
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +11 -1
- package/dist/_esm5.processed/default_config.d.ts +35 -98
- package/dist/_esm5.processed/default_config.js +36 -113
- package/dist/_esm5.processed/errors/custom_loader_error.d.ts +1 -3
- package/dist/_esm5.processed/errors/custom_loader_error.js +1 -3
- package/dist/_esm5.processed/errors/media_error.js +2 -2
- package/dist/_esm5.processed/errors/network_error.d.ts +0 -1
- package/dist/_esm5.processed/errors/network_error.js +0 -1
- package/dist/_esm5.processed/errors/request_error.d.ts +2 -3
- package/dist/_esm5.processed/errors/request_error.js +2 -5
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -3
- package/dist/_esm5.processed/features/features_object.js +0 -2
- package/dist/_esm5.processed/features/list/directfile.js +2 -5
- package/dist/_esm5.processed/features/list/index.d.ts +0 -2
- package/dist/_esm5.processed/features/list/index.js +0 -2
- package/dist/_esm5.processed/features/types.d.ts +3 -27
- package/dist/_esm5.processed/manifest/adaptation.d.ts +9 -11
- package/dist/_esm5.processed/manifest/adaptation.js +41 -30
- package/dist/_esm5.processed/manifest/index.d.ts +3 -4
- package/dist/_esm5.processed/manifest/manifest.d.ts +5 -54
- package/dist/_esm5.processed/manifest/manifest.js +5 -110
- package/dist/_esm5.processed/manifest/period.d.ts +4 -5
- package/dist/_esm5.processed/manifest/representation.d.ts +10 -5
- package/dist/_esm5.processed/manifest/representation.js +33 -10
- package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +2 -0
- package/dist/_esm5.processed/manifest/representation_index/static.js +6 -0
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +42 -21
- package/dist/_esm5.processed/manifest/types.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +17 -31
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +26 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +7 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +2 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +11 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +1 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +3 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +29 -17
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +13 -6
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +7 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +10 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +18 -2
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +6 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +7 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +5 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +12 -3
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +11 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +0 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +11 -17
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +21 -83
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +53 -125
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +119 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +159 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +3 -6
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +4 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +1 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +1 -9
- package/dist/_esm5.processed/public_types.d.ts +396 -308
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +5 -4
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +5 -4
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -3
- package/dist/_esm5.processed/transports/dash/pipelines.js +1 -4
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +26 -20
- package/dist/_esm5.processed/transports/dash/segment_parser.js +19 -24
- package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
- package/dist/_esm5.processed/transports/dash/text_parser.js +28 -33
- package/dist/_esm5.processed/transports/local/pipelines.js +1 -10
- package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/segment_parser.js +10 -10
- package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/local/text_parser.js +23 -23
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +34 -52
- package/dist/_esm5.processed/{utils/list_to_map.d.ts → transports/smooth/is_mp4_embedded_track.d.ts} +5 -5
- package/dist/_esm5.processed/{features/list/image_buffer.d.ts → transports/smooth/is_mp4_embedded_track.js} +7 -6
- package/dist/_esm5.processed/transports/smooth/pipelines.js +33 -190
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +28 -22
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +1 -26
- package/dist/_esm5.processed/transports/smooth/utils.js +1 -55
- package/dist/_esm5.processed/transports/types.d.ts +94 -89
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +5 -7
- package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +8 -12
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +19 -21
- package/dist/_esm5.processed/utils/array_includes.d.ts +2 -1
- package/dist/_esm5.processed/utils/array_includes.js +30 -28
- package/dist/_esm5.processed/utils/request/xhr.js +5 -5
- package/dist/commonjs/compat/is_codec_supported.js +22 -1
- package/dist/commonjs/compat/patch_webkit_source_buffer.js +2 -2
- package/dist/commonjs/config.d.ts +1 -0
- package/dist/commonjs/core/api/debug/buffer_graph.js +2 -6
- package/dist/commonjs/core/api/debug/modules/general_info.js +17 -10
- package/dist/commonjs/core/api/option_utils.d.ts +4 -0
- package/dist/commonjs/core/api/option_utils.js +8 -3
- package/dist/commonjs/core/api/public_api.d.ts +11 -1
- package/dist/commonjs/core/api/public_api.js +46 -11
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +11 -3
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +8 -1
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +8 -4
- package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
- package/dist/commonjs/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/commonjs/core/init/directfile_content_initializer.js +24 -7
- package/dist/commonjs/core/init/media_source_content_initializer.d.ts +6 -0
- package/dist/commonjs/core/init/media_source_content_initializer.js +4 -6
- package/dist/commonjs/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
- package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +16 -17
- package/dist/commonjs/core/init/utils/get_initial_time.d.ts +17 -3
- package/dist/commonjs/core/init/utils/get_initial_time.js +9 -7
- package/dist/commonjs/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.js +19 -2
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +2 -2
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/commonjs/core/stream/period/period_stream.js +2 -2
- package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +3 -3
- package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +1 -1
- package/dist/commonjs/default_config.d.ts +5 -0
- package/dist/commonjs/default_config.js +5 -0
- package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
- package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
- package/dist/commonjs/manifest/representation.js +18 -5
- package/dist/commonjs/manifest/representation_index/static.d.ts +1 -1
- package/dist/commonjs/manifest/representation_index/static.js +2 -2
- package/dist/commonjs/manifest/representation_index/types.d.ts +4 -4
- package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +30 -0
- package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/commonjs/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/base.js +4 -3
- package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
- package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
- package/dist/commonjs/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
- package/dist/commonjs/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/list.js +2 -2
- package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
- package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +42 -29
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +250 -51
- package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
- package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
- package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +13 -10
- package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +27 -14
- package/dist/commonjs/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +17 -18
- package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
- package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +21 -8
- package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +36 -20
- package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
- package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
- package/dist/commonjs/parsers/manifest/dash/node_parser_types.d.ts +2 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.js +3 -3
- package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.js +2 -2
- package/dist/commonjs/parsers/manifest/smooth/representation_index.d.ts +5 -5
- package/dist/commonjs/parsers/manifest/smooth/representation_index.js +25 -9
- package/dist/commonjs/parsers/manifest/types.d.ts +1 -0
- package/dist/commonjs/parsers/manifest/utils/index_helpers.js +1 -1
- package/dist/commonjs/public_types.d.ts +78 -34
- package/dist/commonjs/transports/dash/init_segment_loader.js +10 -5
- package/dist/commonjs/transports/dash/manifest_parser.js +5 -2
- package/dist/commonjs/transports/dash/segment_loader.js +2 -1
- package/dist/commonjs/transports/dash/text_loader.js +2 -0
- package/dist/commonjs/transports/metaplaylist/manifest_loader.js +2 -1
- package/dist/commonjs/transports/metaplaylist/pipelines.js +4 -1
- package/dist/commonjs/transports/smooth/pipelines.js +4 -2
- package/dist/commonjs/transports/smooth/segment_loader.js +2 -1
- package/dist/commonjs/transports/types.d.ts +12 -0
- package/dist/commonjs/transports/utils/generate_manifest_loader.js +6 -3
- package/dist/commonjs/utils/queue_microtask.d.ts +2 -0
- package/dist/commonjs/utils/queue_microtask.js +7 -0
- package/dist/commonjs/utils/request/fetch.d.ts +6 -0
- package/dist/commonjs/utils/request/fetch.js +29 -8
- package/dist/commonjs/utils/request/xhr.d.ts +11 -5
- package/dist/commonjs/utils/request/xhr.js +29 -8
- package/dist/es2017/compat/is_codec_supported.js +22 -1
- package/dist/es2017/compat/patch_webkit_source_buffer.js +2 -2
- package/dist/es2017/config.d.ts +1 -0
- package/dist/es2017/core/api/debug/buffer_graph.js +2 -6
- package/dist/es2017/core/api/debug/modules/general_info.js +17 -10
- package/dist/es2017/core/api/option_utils.d.ts +4 -0
- package/dist/es2017/core/api/option_utils.js +8 -3
- package/dist/es2017/core/api/public_api.d.ts +11 -1
- package/dist/es2017/core/api/public_api.js +44 -9
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +11 -3
- package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +8 -1
- package/dist/es2017/core/fetchers/segment/segment_fetcher.js +8 -4
- package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
- package/dist/es2017/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/es2017/core/init/directfile_content_initializer.js +24 -7
- package/dist/es2017/core/init/media_source_content_initializer.d.ts +6 -0
- package/dist/es2017/core/init/media_source_content_initializer.js +4 -6
- package/dist/es2017/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
- package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +16 -15
- package/dist/es2017/core/init/utils/get_initial_time.d.ts +17 -3
- package/dist/es2017/core/init/utils/get_initial_time.js +9 -7
- package/dist/es2017/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/es2017/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/es2017/core/segment_buffers/implementations/text/html/utils.js +18 -2
- package/dist/es2017/core/stream/adaptation/adaptation_stream.js +2 -2
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/es2017/core/stream/period/period_stream.js +2 -2
- package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +3 -3
- package/dist/es2017/core/stream/representation/utils/get_needed_segments.js +1 -1
- package/dist/es2017/default_config.d.ts +5 -0
- package/dist/es2017/default_config.js +5 -0
- package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
- package/dist/es2017/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
- package/dist/es2017/manifest/representation.js +18 -5
- package/dist/es2017/manifest/representation_index/static.d.ts +1 -1
- package/dist/es2017/manifest/representation_index/static.js +2 -2
- package/dist/es2017/manifest/representation_index/types.d.ts +4 -4
- package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
- package/dist/es2017/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/es2017/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/base.js +4 -3
- package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
- package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
- package/dist/es2017/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
- package/dist/es2017/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/list.js +2 -2
- package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
- package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +40 -27
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +246 -51
- package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
- package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
- package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.js +11 -8
- package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +27 -13
- package/dist/es2017/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
- package/dist/es2017/parsers/manifest/dash/common/parse_periods.js +13 -16
- package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
- package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.js +10 -8
- package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +36 -20
- package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
- package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
- package/dist/es2017/parsers/manifest/dash/node_parser_types.d.ts +2 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/es2017/parsers/manifest/local/representation_index.d.ts +1 -1
- package/dist/es2017/parsers/manifest/local/representation_index.js +3 -3
- package/dist/es2017/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
- package/dist/es2017/parsers/manifest/metaplaylist/representation_index.js +2 -2
- package/dist/es2017/parsers/manifest/smooth/representation_index.d.ts +5 -5
- package/dist/es2017/parsers/manifest/smooth/representation_index.js +25 -9
- package/dist/es2017/parsers/manifest/types.d.ts +1 -0
- package/dist/es2017/parsers/manifest/utils/index_helpers.js +1 -1
- package/dist/es2017/public_types.d.ts +78 -34
- package/dist/es2017/transports/dash/init_segment_loader.js +5 -0
- package/dist/es2017/transports/dash/manifest_parser.js +3 -0
- package/dist/es2017/transports/dash/segment_loader.js +1 -0
- package/dist/es2017/transports/dash/text_loader.js +2 -0
- package/dist/es2017/transports/metaplaylist/manifest_loader.js +1 -0
- package/dist/es2017/transports/metaplaylist/pipelines.js +4 -1
- package/dist/es2017/transports/smooth/pipelines.js +2 -0
- package/dist/es2017/transports/smooth/segment_loader.js +1 -0
- package/dist/es2017/transports/types.d.ts +12 -0
- package/dist/es2017/transports/utils/generate_manifest_loader.js +3 -0
- package/dist/es2017/utils/queue_microtask.d.ts +2 -0
- package/dist/es2017/utils/queue_microtask.js +5 -0
- package/dist/es2017/utils/request/fetch.d.ts +6 -0
- package/dist/es2017/utils/request/fetch.js +29 -8
- package/dist/es2017/utils/request/xhr.d.ts +11 -5
- package/dist/es2017/utils/request/xhr.js +30 -9
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +900 -492
- package/dist/rx-player.min.js +1 -1
- package/package.json +3 -7
- package/scripts/update-version +2 -0
- package/sonar-project.properties +1 -1
- package/src/compat/is_codec_supported.ts +23 -1
- package/src/compat/patch_webkit_source_buffer.ts +2 -2
- package/src/core/api/debug/buffer_graph.ts +2 -5
- package/src/core/api/debug/modules/general_info.ts +15 -10
- package/src/core/api/option_utils.ts +11 -3
- package/src/core/api/public_api.ts +48 -8
- package/src/core/fetchers/manifest/manifest_fetcher.ts +21 -3
- package/src/core/fetchers/segment/segment_fetcher.ts +19 -5
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +1 -0
- package/src/core/fetchers/utils/schedule_request.ts +1 -1
- package/src/core/init/directfile_content_initializer.ts +23 -7
- package/src/core/init/media_source_content_initializer.ts +13 -7
- package/src/core/init/utils/content_time_boundaries_observer.ts +23 -22
- package/src/core/init/utils/get_initial_time.ts +25 -12
- package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +15 -0
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +57 -6
- package/src/core/segment_buffers/implementations/text/html/utils.ts +19 -2
- package/src/core/stream/adaptation/adaptation_stream.ts +2 -2
- package/src/core/stream/orchestrator/stream_orchestrator.ts +3 -3
- package/src/core/stream/period/period_stream.ts +2 -2
- package/src/core/stream/representation/utils/get_buffer_status.ts +3 -3
- package/src/core/stream/representation/utils/get_needed_segments.ts +2 -2
- package/src/default_config.ts +5 -0
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +3 -1
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +2 -0
- package/src/manifest/representation.ts +19 -6
- package/src/manifest/representation_index/static.ts +2 -2
- package/src/manifest/representation_index/types.ts +4 -4
- package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +37 -0
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +20 -0
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +182 -36
- package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +32 -0
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +5 -0
- package/src/parsers/manifest/dash/common/indexes/base.ts +12 -4
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +19 -5
- package/src/parsers/manifest/dash/common/indexes/index.ts +16 -4
- package/src/parsers/manifest/dash/common/indexes/list.ts +2 -2
- package/src/parsers/manifest/dash/common/indexes/template.ts +52 -31
- package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +4 -1
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +366 -60
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +63 -25
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +10 -4
- package/src/parsers/manifest/dash/common/parse_mpd.ts +28 -15
- package/src/parsers/manifest/dash/common/parse_periods.ts +12 -17
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +50 -26
- package/src/parsers/manifest/dash/common/parse_representations.ts +39 -20
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +4 -0
- package/src/parsers/manifest/dash/node_parser_types.ts +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +2 -0
- package/src/parsers/manifest/local/representation_index.ts +3 -3
- package/src/parsers/manifest/metaplaylist/representation_index.ts +2 -2
- package/src/parsers/manifest/smooth/representation_index.ts +23 -9
- package/src/parsers/manifest/types.ts +2 -0
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +1 -1
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +1 -1
- package/src/parsers/manifest/utils/index_helpers.ts +1 -1
- package/src/public_types.ts +79 -34
- package/src/transports/dash/init_segment_loader.ts +5 -0
- package/src/transports/dash/manifest_parser.ts +6 -0
- package/src/transports/dash/segment_loader.ts +1 -0
- package/src/transports/dash/text_loader.ts +2 -0
- package/src/transports/metaplaylist/manifest_loader.ts +1 -0
- package/src/transports/metaplaylist/pipelines.ts +4 -1
- package/src/transports/smooth/pipelines.ts +2 -0
- package/src/transports/smooth/segment_loader.ts +1 -0
- package/src/transports/types.ts +12 -0
- package/src/transports/utils/generate_manifest_loader.ts +3 -0
- package/src/utils/queue_microtask.ts +7 -0
- package/src/utils/request/fetch.ts +35 -8
- package/src/utils/request/xhr.ts +45 -14
- package/dist/_esm5.processed/compat/fullscreen.d.ts +0 -32
- package/dist/_esm5.processed/compat/fullscreen.js +0 -78
- package/dist/_esm5.processed/compat/is_offline.d.ts +0 -39
- package/dist/_esm5.processed/compat/is_offline.js +0 -43
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +0 -258
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +0 -989
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +0 -75
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +0 -133
- package/dist/_esm5.processed/features/list/bif_parser.d.ts +0 -23
- package/dist/_esm5.processed/features/list/bif_parser.js +0 -27
- package/dist/_esm5.processed/features/list/image_buffer.js +0 -25
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +0 -38
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +0 -129
- package/dist/_esm5.processed/utils/list_to_map.js +0 -28
- package/dist/_esm5.processed/utils/simple_set.d.ts +0 -51
- package/dist/_esm5.processed/utils/simple_set.js +0 -57
- package/dist/_esm5.processed/utils/uniq.d.ts +0 -36
- package/dist/_esm5.processed/utils/uniq.js +0 -43
- package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
- package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.js +0 -54
- package/dist/es2017/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
- package/dist/es2017/parsers/manifest/utils/is_segment_still_available.js +0 -51
- package/src/parsers/manifest/utils/is_segment_still_available.ts +0 -58
- package/src/typings/next-tick.d.ts +0 -23
- package/src/typings/object-assign.d.ts +0 -48
|
@@ -87,6 +87,7 @@ pub fn report_adaptation_set_attrs(e: &quick_xml::events::BytesStart) {
|
|
|
87
87
|
b"bitstreamSwitching" => BitstreamSwitching.try_report_as_bool(&attr),
|
|
88
88
|
b"audioSamplingRate" => AudioSamplingRate.try_report_as_string(&attr),
|
|
89
89
|
b"codecs" => Codecs.try_report_as_string(&attr),
|
|
90
|
+
b"scte214:supplementalCodecs" => SupplementalCodecs.try_report_as_string(&attr),
|
|
90
91
|
b"profiles" => Profiles.try_report_as_string(&attr),
|
|
91
92
|
b"segmentProfiles" => SegmentProfiles.try_report_as_string(&attr),
|
|
92
93
|
b"mimeType" => MimeType.try_report_as_string(&attr),
|
|
@@ -116,6 +117,7 @@ pub fn report_representation_attrs(tag_bs: &quick_xml::events::BytesStart) {
|
|
|
116
117
|
b"audioSamplingRate" => AudioSamplingRate.try_report_as_string(&attr),
|
|
117
118
|
b"bandwidth" => Bitrate.try_report_as_u64(&attr),
|
|
118
119
|
b"codecs" => Codecs.try_report_as_string(&attr),
|
|
120
|
+
b"scte214:supplementalCodecs" => SupplementalCodecs.try_report_as_string(&attr),
|
|
119
121
|
b"codingDependency" => CodingDependency.try_report_as_bool(&attr),
|
|
120
122
|
b"frameRate" => FrameRate.try_report_as_maybe_division(&attr),
|
|
121
123
|
b"height" => Height.try_report_as_u64(&attr),
|
|
@@ -287,6 +287,10 @@ export function generateAdaptationSetAttrParser(
|
|
|
287
287
|
adaptationAttrs.codecs =
|
|
288
288
|
parseString(textDecoder, linearMemory.buffer, ptr, len);
|
|
289
289
|
break;
|
|
290
|
+
case AttributeName.SupplementalCodecs:
|
|
291
|
+
adaptationAttrs.supplementalCodecs =
|
|
292
|
+
parseString(textDecoder, linearMemory.buffer, ptr, len);
|
|
293
|
+
break;
|
|
290
294
|
case AttributeName.Profiles:
|
|
291
295
|
adaptationAttrs.profiles =
|
|
292
296
|
parseString(textDecoder, linearMemory.buffer, ptr, len);
|
|
@@ -165,6 +165,10 @@ export function generateRepresentationAttrParser(
|
|
|
165
165
|
representationAttrs.codecs =
|
|
166
166
|
parseString(textDecoder, linearMemory.buffer, ptr, len);
|
|
167
167
|
break;
|
|
168
|
+
case AttributeName.SupplementalCodecs:
|
|
169
|
+
representationAttrs.supplementalCodecs =
|
|
170
|
+
parseString(textDecoder, linearMemory.buffer, ptr, len);
|
|
171
|
+
break;
|
|
168
172
|
case AttributeName.CodingDependency:
|
|
169
173
|
representationAttrs.codingDependency =
|
|
170
174
|
new DataView(linearMemory.buffer).getUint8(0) === 0;
|
|
@@ -149,7 +149,7 @@ export default class LocalRepresentationIndex implements IRepresentationIndex {
|
|
|
149
149
|
* @returns {boolean|undefined}
|
|
150
150
|
*/
|
|
151
151
|
awaitSegmentBetween(start: number, end: number): boolean | undefined {
|
|
152
|
-
if (this.
|
|
152
|
+
if (this.isStillAwaitingFutureSegments()) {
|
|
153
153
|
return false;
|
|
154
154
|
}
|
|
155
155
|
if (this._index.incomingRanges === undefined) {
|
|
@@ -173,8 +173,8 @@ export default class LocalRepresentationIndex implements IRepresentationIndex {
|
|
|
173
173
|
return true;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
|
|
177
|
-
return this._index.isFinished;
|
|
176
|
+
isStillAwaitingFutureSegments() : boolean {
|
|
177
|
+
return !this._index.isFinished;
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
/**
|
|
@@ -203,8 +203,8 @@ export default class MetaRepresentationIndex implements IRepresentationIndex {
|
|
|
203
203
|
/**
|
|
204
204
|
* @returns {Boolean}
|
|
205
205
|
*/
|
|
206
|
-
public
|
|
207
|
-
return this._wrappedIndex.
|
|
206
|
+
public isStillAwaitingFutureSegments() : boolean {
|
|
207
|
+
return this._wrappedIndex.isStillAwaitingFutureSegments();
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
/**
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
checkDiscontinuity,
|
|
28
28
|
getIndexSegmentEnd,
|
|
29
29
|
} from "../utils/index_helpers";
|
|
30
|
-
import isSegmentStillAvailable from "../utils/is_segment_still_available";
|
|
31
30
|
import SharedSmoothSegmentTimeline, {
|
|
32
31
|
IIndexSegment,
|
|
33
32
|
} from "./shared_smooth_segment_timeline";
|
|
@@ -423,7 +422,7 @@ export default class SmoothRepresentationIndex implements IRepresentationIndex {
|
|
|
423
422
|
*/
|
|
424
423
|
awaitSegmentBetween(start: number, end: number): boolean | undefined {
|
|
425
424
|
assert(start <= end);
|
|
426
|
-
if (this.
|
|
425
|
+
if (this.isStillAwaitingFutureSegments()) {
|
|
427
426
|
return false;
|
|
428
427
|
}
|
|
429
428
|
const lastAvailablePosition = this.getLastAvailablePosition();
|
|
@@ -462,7 +461,22 @@ export default class SmoothRepresentationIndex implements IRepresentationIndex {
|
|
|
462
461
|
}
|
|
463
462
|
this._refreshTimeline();
|
|
464
463
|
const { timeline, timescale } = this._sharedSmoothTimeline;
|
|
465
|
-
|
|
464
|
+
for (let i = 0; i < timeline.length; i++) {
|
|
465
|
+
const tSegment = timeline[i];
|
|
466
|
+
const tSegmentTime = tSegment.start / timescale;
|
|
467
|
+
if (tSegmentTime > segment.time) {
|
|
468
|
+
return false; // We went over it without finding it
|
|
469
|
+
} else if (tSegmentTime === segment.time) {
|
|
470
|
+
return true;
|
|
471
|
+
} else { // tSegment.start < segment.time
|
|
472
|
+
if (tSegment.repeatCount >= 0 && tSegment.duration !== undefined) {
|
|
473
|
+
const timeDiff = tSegmentTime - tSegment.start;
|
|
474
|
+
const repeat = (timeDiff / tSegment.duration) - 1;
|
|
475
|
+
return repeat % 1 === 0 && repeat <= tSegment.repeatCount;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
return false;
|
|
466
480
|
}
|
|
467
481
|
|
|
468
482
|
/**
|
|
@@ -500,9 +514,9 @@ export default class SmoothRepresentationIndex implements IRepresentationIndex {
|
|
|
500
514
|
}
|
|
501
515
|
|
|
502
516
|
/**
|
|
503
|
-
* Returns `
|
|
517
|
+
* Returns `false` if the last segments in this index have already been
|
|
504
518
|
* generated.
|
|
505
|
-
* Returns `
|
|
519
|
+
* Returns `true` if the index is still waiting on future segments to be
|
|
506
520
|
* generated.
|
|
507
521
|
*
|
|
508
522
|
* For Smooth, it should only depend on whether the content is a live content
|
|
@@ -510,8 +524,8 @@ export default class SmoothRepresentationIndex implements IRepresentationIndex {
|
|
|
510
524
|
* TODO What about Smooth live content that finishes at some point?
|
|
511
525
|
* @returns {boolean}
|
|
512
526
|
*/
|
|
513
|
-
|
|
514
|
-
return
|
|
527
|
+
isStillAwaitingFutureSegments() : boolean {
|
|
528
|
+
return this._isLive;
|
|
515
529
|
}
|
|
516
530
|
|
|
517
531
|
/**
|
|
@@ -529,8 +543,8 @@ export default class SmoothRepresentationIndex implements IRepresentationIndex {
|
|
|
529
543
|
* Add segments to a `SharedSmoothSegmentTimeline` that were predicted to come
|
|
530
544
|
* after `currentSegment`.
|
|
531
545
|
* @param {Array.<Object>} nextSegments - The segment information parsed.
|
|
532
|
-
* @param {Object}
|
|
533
|
-
* new segment information.
|
|
546
|
+
* @param {Object} currentSegment - Information on the segment which contained
|
|
547
|
+
* that new segment information.
|
|
534
548
|
*/
|
|
535
549
|
addPredictedSegments(
|
|
536
550
|
nextSegments : Array<{ duration : number; time : number; timescale : number }>,
|
|
@@ -160,6 +160,8 @@ export interface IParsedRepresentation {
|
|
|
160
160
|
hdrInfo?: IHDRInformation | undefined;
|
|
161
161
|
/** `true` if audio has Dolby Atmos. */
|
|
162
162
|
isSpatialAudio?: boolean | undefined;
|
|
163
|
+
|
|
164
|
+
supplementalCodecs? : string | undefined;
|
|
163
165
|
}
|
|
164
166
|
|
|
165
167
|
/** Every possible types an Adaptation can have. */
|
|
@@ -30,7 +30,7 @@ function generateRepresentationIndex(
|
|
|
30
30
|
awaitSegmentBetween() : undefined { return ; },
|
|
31
31
|
checkDiscontinuity() : number | null { return null; },
|
|
32
32
|
isSegmentStillAvailable() : undefined { return ; },
|
|
33
|
-
|
|
33
|
+
isStillAwaitingFutureSegments() { return true; },
|
|
34
34
|
canBeOutOfSyncError() : true { return true; },
|
|
35
35
|
isInitialized() : true { return true; },
|
|
36
36
|
initialize() : void { return ; },
|
|
@@ -30,7 +30,7 @@ function generateRepresentationIndex(
|
|
|
30
30
|
awaitSegmentBetween() : undefined { return ; },
|
|
31
31
|
checkDiscontinuity() : number | null { return null; },
|
|
32
32
|
isSegmentStillAvailable() : undefined { return ; },
|
|
33
|
-
|
|
33
|
+
isStillAwaitingFutureSegments() { return true; },
|
|
34
34
|
isInitialized() : true { return true; },
|
|
35
35
|
initialize() : void { return ; },
|
|
36
36
|
addPredictedSegments() : void { return ; },
|
|
@@ -136,7 +136,7 @@ export function getTimescaledRange(
|
|
|
136
136
|
* timescaled time.
|
|
137
137
|
* Returns -1 if the given time is lower than the start of the first available
|
|
138
138
|
* segment.
|
|
139
|
-
* @param {Object}
|
|
139
|
+
* @param {Object} timeline
|
|
140
140
|
* @param {Number} timeTScaled
|
|
141
141
|
* @returns {Number}
|
|
142
142
|
*/
|
package/src/public_types.ts
CHANGED
|
@@ -255,10 +255,20 @@ export type IStartAtOption =
|
|
|
255
255
|
percentage : number;
|
|
256
256
|
} | {
|
|
257
257
|
/**
|
|
258
|
-
* If set, we should begin at this position relative to the content's
|
|
259
|
-
* in seconds.
|
|
258
|
+
* If set, we should begin at this position relative to the content's maximum
|
|
259
|
+
* seekable position, in seconds.
|
|
260
260
|
*/
|
|
261
261
|
fromLastPosition : number;
|
|
262
|
+
} | {
|
|
263
|
+
/**
|
|
264
|
+
* If set, we should begin at this position relative to the content's live
|
|
265
|
+
* edge if it makes sense, in seconds.
|
|
266
|
+
*
|
|
267
|
+
* If the live edge is unknown or if it does not make sense for the current
|
|
268
|
+
* content, that position is relative to the content's maximum position
|
|
269
|
+
* instead.
|
|
270
|
+
*/
|
|
271
|
+
fromLivePosition : number;
|
|
262
272
|
} | {
|
|
263
273
|
/**
|
|
264
274
|
* If set, we should begin at this position relative to the content's start,
|
|
@@ -267,40 +277,38 @@ export type IStartAtOption =
|
|
|
267
277
|
fromFirstPosition : number;
|
|
268
278
|
};
|
|
269
279
|
|
|
280
|
+
export interface RequestRetryParameters {
|
|
281
|
+
/**
|
|
282
|
+
* The amount of time maximum we should retry a request before failing on Error.
|
|
283
|
+
* Set to `Infinity` for an infinite number of requests.
|
|
284
|
+
*/
|
|
285
|
+
maxRetry? : number | undefined;
|
|
286
|
+
/**
|
|
287
|
+
* Amount of time, in milliseconds, after which a request should be
|
|
288
|
+
* aborted and optionally retried, depending on the maxRetry configuration.
|
|
289
|
+
*
|
|
290
|
+
* Setting it to `-1` allows to disable any timeout.
|
|
291
|
+
* `undefined` means that a default, large, timeout will be used instead.
|
|
292
|
+
*/
|
|
293
|
+
timeout? : number | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* Amount of time, in milliseconds, after which a request that hasn't receive
|
|
296
|
+
* the headers and status code should be aborted and optionnaly retried,
|
|
297
|
+
* depending on the maxRetry configuration.
|
|
298
|
+
*/
|
|
299
|
+
connectionTimeout?: number | undefined;
|
|
300
|
+
}
|
|
301
|
+
|
|
270
302
|
/** Value for the `requestConfig` option of the `loadVideo` method. */
|
|
271
303
|
export interface IRequestConfig {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
* Amount of time, in milliseconds, after which a manifest request should be
|
|
281
|
-
* aborted and optionally retried, depending on the current configuration.
|
|
282
|
-
*
|
|
283
|
-
* Setting it to `-1` allows to disable any timeout.
|
|
284
|
-
* `undefined` means that a default, large, timeout will be used instead.
|
|
285
|
-
*/
|
|
286
|
-
timeout? : number | undefined;
|
|
287
|
-
} | undefined;
|
|
288
|
-
segment? : {
|
|
289
|
-
/**
|
|
290
|
-
* The amount of time maximum we should retry a segment or segment-related
|
|
291
|
-
* request before failing on Error.
|
|
292
|
-
* Set to `Infinity` for an infinite number of requests.
|
|
293
|
-
*/
|
|
294
|
-
maxRetry? : number | undefined;
|
|
295
|
-
/**
|
|
296
|
-
* Amount of time, in milliseconds, after which a segment request should be
|
|
297
|
-
* aborted and optionally retried, depending on the current configuration.
|
|
298
|
-
*
|
|
299
|
-
* Setting it to `-1` allows to disable any timeout.
|
|
300
|
-
* `undefined` means that a default, large, timeout will be used instead.
|
|
301
|
-
*/
|
|
302
|
-
timeout? : number | undefined;
|
|
303
|
-
} | undefined;
|
|
304
|
+
/**
|
|
305
|
+
* Defines the retry parameters when requesting manifest
|
|
306
|
+
*/
|
|
307
|
+
manifest? : RequestRetryParameters | undefined;
|
|
308
|
+
/**
|
|
309
|
+
* Defines the retry parameters when requesting a segment
|
|
310
|
+
*/
|
|
311
|
+
segment? : RequestRetryParameters | undefined;
|
|
304
312
|
}
|
|
305
313
|
|
|
306
314
|
export type ISegmentLoader = (
|
|
@@ -949,20 +957,57 @@ export interface ILockedAudioRepresentationsSettings {
|
|
|
949
957
|
}
|
|
950
958
|
|
|
951
959
|
export interface IAudioTrackSetting {
|
|
960
|
+
/** `id` of the audio track you want to set. */
|
|
952
961
|
trackId : string;
|
|
962
|
+
/**
|
|
963
|
+
* `id` of the Period for which you want that setting applied.
|
|
964
|
+
* Keeping it undefined means it will apply to the currently-playing Period.
|
|
965
|
+
*/
|
|
953
966
|
periodId? : string | undefined;
|
|
967
|
+
/**
|
|
968
|
+
* Behavior wanted when replacing an audio track / Adaptation by another.
|
|
969
|
+
* @see IAudioTrackSwitchingMode
|
|
970
|
+
*
|
|
971
|
+
* Keeping it undefined means that the RxPlayer will automatically select
|
|
972
|
+
* the most adapted choice.
|
|
973
|
+
*/
|
|
954
974
|
switchingMode? : IAudioTrackSwitchingMode | undefined;
|
|
975
|
+
/**
|
|
976
|
+
* Representations (a.k.a. qualities) you want to play in that new track.
|
|
977
|
+
* Keeping it undefined means that all compatible qualities may be played.
|
|
978
|
+
*/
|
|
955
979
|
lockedRepresentations? : string[] | undefined;
|
|
956
980
|
}
|
|
957
981
|
|
|
958
982
|
export interface IVideoTrackSetting {
|
|
983
|
+
/** `id` of the video track you want to set. */
|
|
959
984
|
trackId : string;
|
|
985
|
+
/**
|
|
986
|
+
* `id` of the Period for which you want that setting applied.
|
|
987
|
+
* Keeping it undefined means it will apply to the currently-playing Period.
|
|
988
|
+
*/
|
|
960
989
|
periodId? : string | undefined;
|
|
990
|
+
/**
|
|
991
|
+
* Behavior wanted when replacing an video track / Adaptation by another.
|
|
992
|
+
* @see IVideoTrackSwitchingMode
|
|
993
|
+
*
|
|
994
|
+
* Keeping it undefined means that the RxPlayer will automatically select
|
|
995
|
+
* the most adapted choice.
|
|
996
|
+
*/
|
|
961
997
|
switchingMode? : IVideoTrackSwitchingMode | undefined;
|
|
998
|
+
/**
|
|
999
|
+
* Representations (a.k.a. qualities) you want to play in that new track.
|
|
1000
|
+
* Keeping it undefined means that all compatible qualities may be played.
|
|
1001
|
+
*/
|
|
962
1002
|
lockedRepresentations? : string[] | undefined;
|
|
963
1003
|
}
|
|
964
1004
|
|
|
965
1005
|
export interface ITextTrackSetting {
|
|
1006
|
+
/** `id` of the text track you want to set. */
|
|
966
1007
|
trackId : string;
|
|
1008
|
+
/**
|
|
1009
|
+
* `id` of the Period for which you want that setting applied.
|
|
1010
|
+
* Keeping it undefined means it will apply to the currently-playing Period.
|
|
1011
|
+
*/
|
|
967
1012
|
periodId? : string | undefined;
|
|
968
1013
|
}
|
|
@@ -50,6 +50,7 @@ export default function initSegmentLoader(
|
|
|
50
50
|
return request({ url,
|
|
51
51
|
responseType: "arraybuffer",
|
|
52
52
|
timeout: options.timeout,
|
|
53
|
+
connectionTimeout: options.connectionTimeout,
|
|
53
54
|
cancelSignal,
|
|
54
55
|
onProgress: callbacks.onProgress })
|
|
55
56
|
.then(data => ({ resultType: "segment-loaded",
|
|
@@ -61,6 +62,7 @@ export default function initSegmentLoader(
|
|
|
61
62
|
headers: { Range: byteRange(segment.range) },
|
|
62
63
|
responseType: "arraybuffer",
|
|
63
64
|
timeout: options.timeout,
|
|
65
|
+
connectionTimeout: options.connectionTimeout,
|
|
64
66
|
cancelSignal,
|
|
65
67
|
onProgress: callbacks.onProgress })
|
|
66
68
|
.then(data => ({ resultType: "segment-loaded",
|
|
@@ -74,6 +76,7 @@ export default function initSegmentLoader(
|
|
|
74
76
|
segment.indexRange[1] ]) },
|
|
75
77
|
responseType: "arraybuffer",
|
|
76
78
|
timeout: options.timeout,
|
|
79
|
+
connectionTimeout: options.connectionTimeout,
|
|
77
80
|
cancelSignal,
|
|
78
81
|
onProgress: callbacks.onProgress })
|
|
79
82
|
.then(data => ({ resultType: "segment-loaded",
|
|
@@ -84,12 +87,14 @@ export default function initSegmentLoader(
|
|
|
84
87
|
headers: { Range: byteRange(segment.range) },
|
|
85
88
|
responseType: "arraybuffer",
|
|
86
89
|
timeout: options.timeout,
|
|
90
|
+
connectionTimeout: options.connectionTimeout,
|
|
87
91
|
cancelSignal,
|
|
88
92
|
onProgress: callbacks.onProgress });
|
|
89
93
|
const indexRequest$ = request({ url,
|
|
90
94
|
headers: { Range: byteRange(segment.indexRange) },
|
|
91
95
|
responseType: "arraybuffer",
|
|
92
96
|
timeout: options.timeout,
|
|
97
|
+
connectionTimeout: options.connectionTimeout,
|
|
93
98
|
cancelSignal,
|
|
94
99
|
onProgress: callbacks.onProgress });
|
|
95
100
|
|
|
@@ -151,14 +151,20 @@ export default function generateManifestParser(
|
|
|
151
151
|
const externalResources = value.urls.map(resourceUrl => {
|
|
152
152
|
return scheduleRequest(() => {
|
|
153
153
|
const defaultTimeout = config.getCurrent().DEFAULT_REQUEST_TIMEOUT;
|
|
154
|
+
const defaultConnectionTimeout = config.getCurrent().DEFAULT_CONNECTION_TIMEOUT;
|
|
155
|
+
|
|
154
156
|
return value.format === "string" ? request({ url: resourceUrl,
|
|
155
157
|
responseType: "text",
|
|
156
158
|
timeout: defaultTimeout,
|
|
159
|
+
connectionTimeout:
|
|
160
|
+
defaultConnectionTimeout,
|
|
157
161
|
cancelSignal }) :
|
|
158
162
|
|
|
159
163
|
request({ url: resourceUrl,
|
|
160
164
|
responseType: "arraybuffer",
|
|
161
165
|
timeout: defaultTimeout,
|
|
166
|
+
connectionTimeout:
|
|
167
|
+
defaultConnectionTimeout,
|
|
162
168
|
cancelSignal });
|
|
163
169
|
}).then((res) => {
|
|
164
170
|
if (value.format === "string") {
|
|
@@ -84,6 +84,7 @@ export function regularSegmentLoader(
|
|
|
84
84
|
{ Range: byteRange(segment.range) } :
|
|
85
85
|
undefined,
|
|
86
86
|
timeout: options.timeout,
|
|
87
|
+
connectionTimeout: options.connectionTimeout,
|
|
87
88
|
cancelSignal,
|
|
88
89
|
onProgress: callbacks.onProgress })
|
|
89
90
|
.then((data) => ({ resultType: "segment-loaded",
|
|
@@ -99,6 +99,7 @@ export default function generateTextTrackLoader(
|
|
|
99
99
|
{ Range: byteRange(range) } :
|
|
100
100
|
null,
|
|
101
101
|
timeout: options.timeout,
|
|
102
|
+
connectionTimeout: options.connectionTimeout,
|
|
102
103
|
onProgress: callbacks.onProgress,
|
|
103
104
|
cancelSignal })
|
|
104
105
|
.then((data) => ({ resultType: "segment-loaded",
|
|
@@ -111,6 +112,7 @@ export default function generateTextTrackLoader(
|
|
|
111
112
|
{ Range: byteRange(range) } :
|
|
112
113
|
null,
|
|
113
114
|
timeout: options.timeout,
|
|
115
|
+
connectionTimeout: options.connectionTimeout,
|
|
114
116
|
onProgress: callbacks.onProgress,
|
|
115
117
|
cancelSignal })
|
|
116
118
|
.then((data) => ({ resultType: "segment-loaded",
|
|
@@ -177,7 +177,10 @@ export default function(options : ITransportOptions): ITransportPipelines {
|
|
|
177
177
|
* Whether a ManifestLoader's timeout should be relied on here
|
|
178
178
|
* is ambiguous.
|
|
179
179
|
*/
|
|
180
|
-
const manOpts = {
|
|
180
|
+
const manOpts = {
|
|
181
|
+
timeout: config.getCurrent().DEFAULT_REQUEST_TIMEOUT,
|
|
182
|
+
connectionTimeout: config.getCurrent().DEFAULT_CONNECTION_TIMEOUT,
|
|
183
|
+
};
|
|
181
184
|
return transport.manifest.loadManifest(resource.url, manOpts, cancelSignal);
|
|
182
185
|
}
|
|
183
186
|
});
|
|
@@ -203,6 +203,7 @@ export default function(transportOptions : ITransportOptions) : ITransportPipeli
|
|
|
203
203
|
return request({ url,
|
|
204
204
|
responseType: "text",
|
|
205
205
|
timeout: loaderOptions.timeout,
|
|
206
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
206
207
|
cancelSignal,
|
|
207
208
|
onProgress: callbacks.onProgress })
|
|
208
209
|
.then((data) => ({ resultType: "segment-loaded" as const,
|
|
@@ -211,6 +212,7 @@ export default function(transportOptions : ITransportOptions) : ITransportPipeli
|
|
|
211
212
|
return request({ url,
|
|
212
213
|
responseType: "arraybuffer",
|
|
213
214
|
timeout: loaderOptions.timeout,
|
|
215
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
214
216
|
cancelSignal,
|
|
215
217
|
onProgress: callbacks.onProgress })
|
|
216
218
|
.then((data) => {
|
package/src/transports/types.ts
CHANGED
|
@@ -169,6 +169,12 @@ export interface IManifestLoaderOptions {
|
|
|
169
169
|
* `undefined` means that no timeout will be enforced.
|
|
170
170
|
*/
|
|
171
171
|
timeout? : number | undefined;
|
|
172
|
+
/**
|
|
173
|
+
* Connection timeout, in milliseconds, after which the request is canceled
|
|
174
|
+
* if the responses headers has not being received.
|
|
175
|
+
* Do not set or set to "undefined" to disable it.
|
|
176
|
+
*/
|
|
177
|
+
connectionTimeout? : number | undefined;
|
|
172
178
|
}
|
|
173
179
|
|
|
174
180
|
/** Functions allowing to load and parse segments of any type. */
|
|
@@ -217,6 +223,12 @@ export interface ISegmentLoaderOptions {
|
|
|
217
223
|
* `undefined` means that no timeout will be enforced.
|
|
218
224
|
*/
|
|
219
225
|
timeout? : number | undefined;
|
|
226
|
+
/**
|
|
227
|
+
* Connection timeout, in milliseconds, after which the request is canceled
|
|
228
|
+
* if the responses headers has not being received.
|
|
229
|
+
* Do not set or set to "undefined" to disable it.
|
|
230
|
+
*/
|
|
231
|
+
connectionTimeout? : number | undefined;
|
|
220
232
|
}
|
|
221
233
|
|
|
222
234
|
/**
|
|
@@ -57,16 +57,19 @@ function generateRegularManifestLoader(
|
|
|
57
57
|
return request({ url,
|
|
58
58
|
responseType: "arraybuffer",
|
|
59
59
|
timeout: loaderOptions.timeout,
|
|
60
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
60
61
|
cancelSignal });
|
|
61
62
|
case "text":
|
|
62
63
|
return request({ url,
|
|
63
64
|
responseType: "text",
|
|
64
65
|
timeout: loaderOptions.timeout,
|
|
66
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
65
67
|
cancelSignal });
|
|
66
68
|
case "document":
|
|
67
69
|
return request({ url,
|
|
68
70
|
responseType: "document",
|
|
69
71
|
timeout: loaderOptions.timeout,
|
|
72
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
70
73
|
cancelSignal });
|
|
71
74
|
default:
|
|
72
75
|
assertUnreachable(preferredType);
|
|
@@ -95,6 +95,12 @@ export interface IFetchOptions {
|
|
|
95
95
|
* if not all data has been received yet.
|
|
96
96
|
*/
|
|
97
97
|
timeout? : number | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Optional connection timeout, in milliseconds, after which the request is canceled
|
|
100
|
+
* if the responses headers has not being received.
|
|
101
|
+
* Do not set or set to "undefined" to disable it.
|
|
102
|
+
*/
|
|
103
|
+
connectionTimeout? : number | undefined;
|
|
98
104
|
}
|
|
99
105
|
|
|
100
106
|
|
|
@@ -128,7 +134,8 @@ export default function fetchRequest(
|
|
|
128
134
|
|
|
129
135
|
log.debug("Fetch: Called with URL", options.url);
|
|
130
136
|
let cancellation : CancellationError | null = null;
|
|
131
|
-
let
|
|
137
|
+
let isTimedOut = false;
|
|
138
|
+
let isConnectionTimedOut = false;
|
|
132
139
|
const sendingTime = getMonotonicTimeStamp();
|
|
133
140
|
const abortController: AbortController | null =
|
|
134
141
|
!isNullOrUndefined(_AbortController) ? new _AbortController() :
|
|
@@ -146,14 +153,28 @@ export default function fetchRequest(
|
|
|
146
153
|
abortController.abort();
|
|
147
154
|
}
|
|
148
155
|
|
|
149
|
-
let
|
|
156
|
+
let timeoutId : number | undefined;
|
|
150
157
|
if (options.timeout !== undefined) {
|
|
151
|
-
|
|
152
|
-
|
|
158
|
+
timeoutId = setTimeout(() => {
|
|
159
|
+
isTimedOut = true;
|
|
160
|
+
if (connectionTimeoutId !== undefined) {
|
|
161
|
+
clearTimeout(connectionTimeoutId);
|
|
162
|
+
}
|
|
153
163
|
abortFetch();
|
|
154
164
|
}, options.timeout);
|
|
155
165
|
}
|
|
156
166
|
|
|
167
|
+
let connectionTimeoutId: number | undefined;
|
|
168
|
+
if (options.connectionTimeout !== undefined) {
|
|
169
|
+
connectionTimeoutId = setTimeout(() => {
|
|
170
|
+
isConnectionTimedOut = true;
|
|
171
|
+
if (timeoutId !== undefined) {
|
|
172
|
+
clearTimeout(timeoutId);
|
|
173
|
+
}
|
|
174
|
+
abortFetch();
|
|
175
|
+
}, options.connectionTimeout);
|
|
176
|
+
}
|
|
177
|
+
|
|
157
178
|
const deregisterCancelLstnr = options.cancelSignal
|
|
158
179
|
.register(function abortRequest(err : CancellationError) {
|
|
159
180
|
cancellation = err;
|
|
@@ -170,8 +191,8 @@ export default function fetchRequest(
|
|
|
170
191
|
options.url,
|
|
171
192
|
fetchOpts
|
|
172
193
|
).then((response : Response) : Promise<IFetchedStreamComplete> => {
|
|
173
|
-
if (
|
|
174
|
-
clearTimeout(
|
|
194
|
+
if (connectionTimeoutId !== undefined) {
|
|
195
|
+
clearTimeout(connectionTimeoutId);
|
|
175
196
|
}
|
|
176
197
|
if (response.status >= 300) {
|
|
177
198
|
log.warn("Fetch: Request HTTP Error", response.status, response.url);
|
|
@@ -212,6 +233,9 @@ export default function fetchRequest(
|
|
|
212
233
|
options.onData(dataInfo);
|
|
213
234
|
return readBufferAndSendEvents();
|
|
214
235
|
} else if (data.done) {
|
|
236
|
+
if (timeoutId !== undefined) {
|
|
237
|
+
clearTimeout(timeoutId);
|
|
238
|
+
}
|
|
215
239
|
deregisterCancelLstnr();
|
|
216
240
|
const receivedTime = getMonotonicTimeStamp();
|
|
217
241
|
const requestDuration = receivedTime - sendingTime;
|
|
@@ -229,8 +253,11 @@ export default function fetchRequest(
|
|
|
229
253
|
throw cancellation;
|
|
230
254
|
}
|
|
231
255
|
deregisterCancelLstnr();
|
|
232
|
-
if (
|
|
233
|
-
log.warn("Fetch: Request
|
|
256
|
+
if (isTimedOut) {
|
|
257
|
+
log.warn("Fetch: Request timed out.");
|
|
258
|
+
throw new RequestError(options.url, 0, NetworkErrorTypes.TIMEOUT);
|
|
259
|
+
} else if (isConnectionTimedOut) {
|
|
260
|
+
log.warn("Fetch: Request connection timed out.");
|
|
234
261
|
throw new RequestError(options.url, 0, NetworkErrorTypes.TIMEOUT);
|
|
235
262
|
} else if (err instanceof RequestError) {
|
|
236
263
|
throw err;
|