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
|
@@ -154,6 +154,7 @@ export interface IParsedRepresentation {
|
|
|
154
154
|
hdrInfo?: IHDRInformation | undefined;
|
|
155
155
|
/** `true` if audio has Dolby Atmos. */
|
|
156
156
|
isSpatialAudio?: boolean | undefined;
|
|
157
|
+
supplementalCodecs?: string | undefined;
|
|
157
158
|
}
|
|
158
159
|
/** Every possible types an Adaptation can have. */
|
|
159
160
|
export type IParsedAdaptationType = "audio" | "video" | "text";
|
|
@@ -97,7 +97,7 @@ export function getTimescaledRange(start, duration, timescale) {
|
|
|
97
97
|
* timescaled time.
|
|
98
98
|
* Returns -1 if the given time is lower than the start of the first available
|
|
99
99
|
* segment.
|
|
100
|
-
* @param {Object}
|
|
100
|
+
* @param {Object} timeline
|
|
101
101
|
* @param {Number} timeTScaled
|
|
102
102
|
* @returns {Number}
|
|
103
103
|
*/
|
|
@@ -203,10 +203,20 @@ export type IStartAtOption = {
|
|
|
203
203
|
percentage: number;
|
|
204
204
|
} | {
|
|
205
205
|
/**
|
|
206
|
-
* If set, we should begin at this position relative to the content's
|
|
207
|
-
* in seconds.
|
|
206
|
+
* If set, we should begin at this position relative to the content's maximum
|
|
207
|
+
* seekable position, in seconds.
|
|
208
208
|
*/
|
|
209
209
|
fromLastPosition: number;
|
|
210
|
+
} | {
|
|
211
|
+
/**
|
|
212
|
+
* If set, we should begin at this position relative to the content's live
|
|
213
|
+
* edge if it makes sense, in seconds.
|
|
214
|
+
*
|
|
215
|
+
* If the live edge is unknown or if it does not make sense for the current
|
|
216
|
+
* content, that position is relative to the content's maximum position
|
|
217
|
+
* instead.
|
|
218
|
+
*/
|
|
219
|
+
fromLivePosition: number;
|
|
210
220
|
} | {
|
|
211
221
|
/**
|
|
212
222
|
* If set, we should begin at this position relative to the content's start,
|
|
@@ -214,40 +224,37 @@ export type IStartAtOption = {
|
|
|
214
224
|
*/
|
|
215
225
|
fromFirstPosition: number;
|
|
216
226
|
};
|
|
227
|
+
export interface RequestRetryParameters {
|
|
228
|
+
/**
|
|
229
|
+
* The amount of time maximum we should retry a request before failing on Error.
|
|
230
|
+
* Set to `Infinity` for an infinite number of requests.
|
|
231
|
+
*/
|
|
232
|
+
maxRetry?: number | undefined;
|
|
233
|
+
/**
|
|
234
|
+
* Amount of time, in milliseconds, after which a request should be
|
|
235
|
+
* aborted and optionally retried, depending on the maxRetry configuration.
|
|
236
|
+
*
|
|
237
|
+
* Setting it to `-1` allows to disable any timeout.
|
|
238
|
+
* `undefined` means that a default, large, timeout will be used instead.
|
|
239
|
+
*/
|
|
240
|
+
timeout?: number | undefined;
|
|
241
|
+
/**
|
|
242
|
+
* Amount of time, in milliseconds, after which a request that hasn't receive
|
|
243
|
+
* the headers and status code should be aborted and optionnaly retried,
|
|
244
|
+
* depending on the maxRetry configuration.
|
|
245
|
+
*/
|
|
246
|
+
connectionTimeout?: number | undefined;
|
|
247
|
+
}
|
|
217
248
|
/** Value for the `requestConfig` option of the `loadVideo` method. */
|
|
218
249
|
export interface IRequestConfig {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
* Amount of time, in milliseconds, after which a manifest request should be
|
|
228
|
-
* aborted and optionally retried, depending on the current configuration.
|
|
229
|
-
*
|
|
230
|
-
* Setting it to `-1` allows to disable any timeout.
|
|
231
|
-
* `undefined` means that a default, large, timeout will be used instead.
|
|
232
|
-
*/
|
|
233
|
-
timeout?: number | undefined;
|
|
234
|
-
} | undefined;
|
|
235
|
-
segment?: {
|
|
236
|
-
/**
|
|
237
|
-
* The amount of time maximum we should retry a segment or segment-related
|
|
238
|
-
* request before failing on Error.
|
|
239
|
-
* Set to `Infinity` for an infinite number of requests.
|
|
240
|
-
*/
|
|
241
|
-
maxRetry?: number | undefined;
|
|
242
|
-
/**
|
|
243
|
-
* Amount of time, in milliseconds, after which a segment request should be
|
|
244
|
-
* aborted and optionally retried, depending on the current configuration.
|
|
245
|
-
*
|
|
246
|
-
* Setting it to `-1` allows to disable any timeout.
|
|
247
|
-
* `undefined` means that a default, large, timeout will be used instead.
|
|
248
|
-
*/
|
|
249
|
-
timeout?: number | undefined;
|
|
250
|
-
} | undefined;
|
|
250
|
+
/**
|
|
251
|
+
* Defines the retry parameters when requesting manifest
|
|
252
|
+
*/
|
|
253
|
+
manifest?: RequestRetryParameters | undefined;
|
|
254
|
+
/**
|
|
255
|
+
* Defines the retry parameters when requesting a segment
|
|
256
|
+
*/
|
|
257
|
+
segment?: RequestRetryParameters | undefined;
|
|
251
258
|
}
|
|
252
259
|
export type ISegmentLoader = (
|
|
253
260
|
/** Information on the segment to request */
|
|
@@ -808,18 +815,55 @@ export interface ILockedAudioRepresentationsSettings {
|
|
|
808
815
|
switchingMode?: IAudioRepresentationsSwitchingMode | undefined;
|
|
809
816
|
}
|
|
810
817
|
export interface IAudioTrackSetting {
|
|
818
|
+
/** `id` of the audio track you want to set. */
|
|
811
819
|
trackId: string;
|
|
820
|
+
/**
|
|
821
|
+
* `id` of the Period for which you want that setting applied.
|
|
822
|
+
* Keeping it undefined means it will apply to the currently-playing Period.
|
|
823
|
+
*/
|
|
812
824
|
periodId?: string | undefined;
|
|
825
|
+
/**
|
|
826
|
+
* Behavior wanted when replacing an audio track / Adaptation by another.
|
|
827
|
+
* @see IAudioTrackSwitchingMode
|
|
828
|
+
*
|
|
829
|
+
* Keeping it undefined means that the RxPlayer will automatically select
|
|
830
|
+
* the most adapted choice.
|
|
831
|
+
*/
|
|
813
832
|
switchingMode?: IAudioTrackSwitchingMode | undefined;
|
|
833
|
+
/**
|
|
834
|
+
* Representations (a.k.a. qualities) you want to play in that new track.
|
|
835
|
+
* Keeping it undefined means that all compatible qualities may be played.
|
|
836
|
+
*/
|
|
814
837
|
lockedRepresentations?: string[] | undefined;
|
|
815
838
|
}
|
|
816
839
|
export interface IVideoTrackSetting {
|
|
840
|
+
/** `id` of the video track you want to set. */
|
|
817
841
|
trackId: string;
|
|
842
|
+
/**
|
|
843
|
+
* `id` of the Period for which you want that setting applied.
|
|
844
|
+
* Keeping it undefined means it will apply to the currently-playing Period.
|
|
845
|
+
*/
|
|
818
846
|
periodId?: string | undefined;
|
|
847
|
+
/**
|
|
848
|
+
* Behavior wanted when replacing an video track / Adaptation by another.
|
|
849
|
+
* @see IVideoTrackSwitchingMode
|
|
850
|
+
*
|
|
851
|
+
* Keeping it undefined means that the RxPlayer will automatically select
|
|
852
|
+
* the most adapted choice.
|
|
853
|
+
*/
|
|
819
854
|
switchingMode?: IVideoTrackSwitchingMode | undefined;
|
|
855
|
+
/**
|
|
856
|
+
* Representations (a.k.a. qualities) you want to play in that new track.
|
|
857
|
+
* Keeping it undefined means that all compatible qualities may be played.
|
|
858
|
+
*/
|
|
820
859
|
lockedRepresentations?: string[] | undefined;
|
|
821
860
|
}
|
|
822
861
|
export interface ITextTrackSetting {
|
|
862
|
+
/** `id` of the text track you want to set. */
|
|
823
863
|
trackId: string;
|
|
864
|
+
/**
|
|
865
|
+
* `id` of the Period for which you want that setting applied.
|
|
866
|
+
* Keeping it undefined means it will apply to the currently-playing Period.
|
|
867
|
+
*/
|
|
824
868
|
periodId?: string | undefined;
|
|
825
869
|
}
|
|
@@ -30,6 +30,7 @@ export default function initSegmentLoader(url, segment, options, cancelSignal, c
|
|
|
30
30
|
return request({ url,
|
|
31
31
|
responseType: "arraybuffer",
|
|
32
32
|
timeout: options.timeout,
|
|
33
|
+
connectionTimeout: options.connectionTimeout,
|
|
33
34
|
cancelSignal,
|
|
34
35
|
onProgress: callbacks.onProgress })
|
|
35
36
|
.then(data => ({ resultType: "segment-loaded",
|
|
@@ -40,6 +41,7 @@ export default function initSegmentLoader(url, segment, options, cancelSignal, c
|
|
|
40
41
|
headers: { Range: byteRange(segment.range) },
|
|
41
42
|
responseType: "arraybuffer",
|
|
42
43
|
timeout: options.timeout,
|
|
44
|
+
connectionTimeout: options.connectionTimeout,
|
|
43
45
|
cancelSignal,
|
|
44
46
|
onProgress: callbacks.onProgress })
|
|
45
47
|
.then(data => ({ resultType: "segment-loaded",
|
|
@@ -52,6 +54,7 @@ export default function initSegmentLoader(url, segment, options, cancelSignal, c
|
|
|
52
54
|
segment.indexRange[1]]) },
|
|
53
55
|
responseType: "arraybuffer",
|
|
54
56
|
timeout: options.timeout,
|
|
57
|
+
connectionTimeout: options.connectionTimeout,
|
|
55
58
|
cancelSignal,
|
|
56
59
|
onProgress: callbacks.onProgress })
|
|
57
60
|
.then(data => ({ resultType: "segment-loaded",
|
|
@@ -61,12 +64,14 @@ export default function initSegmentLoader(url, segment, options, cancelSignal, c
|
|
|
61
64
|
headers: { Range: byteRange(segment.range) },
|
|
62
65
|
responseType: "arraybuffer",
|
|
63
66
|
timeout: options.timeout,
|
|
67
|
+
connectionTimeout: options.connectionTimeout,
|
|
64
68
|
cancelSignal,
|
|
65
69
|
onProgress: callbacks.onProgress });
|
|
66
70
|
const indexRequest$ = request({ url,
|
|
67
71
|
headers: { Range: byteRange(segment.indexRange) },
|
|
68
72
|
responseType: "arraybuffer",
|
|
69
73
|
timeout: options.timeout,
|
|
74
|
+
connectionTimeout: options.connectionTimeout,
|
|
70
75
|
cancelSignal,
|
|
71
76
|
onProgress: callbacks.onProgress });
|
|
72
77
|
return Promise.all([rangeRequest$, indexRequest$])
|
|
@@ -110,13 +110,16 @@ export default function generateManifestParser(options) {
|
|
|
110
110
|
const externalResources = value.urls.map(resourceUrl => {
|
|
111
111
|
return scheduleRequest(() => {
|
|
112
112
|
const defaultTimeout = config.getCurrent().DEFAULT_REQUEST_TIMEOUT;
|
|
113
|
+
const defaultConnectionTimeout = config.getCurrent().DEFAULT_CONNECTION_TIMEOUT;
|
|
113
114
|
return value.format === "string" ? request({ url: resourceUrl,
|
|
114
115
|
responseType: "text",
|
|
115
116
|
timeout: defaultTimeout,
|
|
117
|
+
connectionTimeout: defaultConnectionTimeout,
|
|
116
118
|
cancelSignal }) :
|
|
117
119
|
request({ url: resourceUrl,
|
|
118
120
|
responseType: "arraybuffer",
|
|
119
121
|
timeout: defaultTimeout,
|
|
122
|
+
connectionTimeout: defaultConnectionTimeout,
|
|
120
123
|
cancelSignal });
|
|
121
124
|
}).then((res) => {
|
|
122
125
|
if (value.format === "string") {
|
|
@@ -53,6 +53,7 @@ export function regularSegmentLoader(url, context, lowLatencyMode, options, call
|
|
|
53
53
|
{ Range: byteRange(segment.range) } :
|
|
54
54
|
undefined,
|
|
55
55
|
timeout: options.timeout,
|
|
56
|
+
connectionTimeout: options.connectionTimeout,
|
|
56
57
|
cancelSignal,
|
|
57
58
|
onProgress: callbacks.onProgress })
|
|
58
59
|
.then((data) => ({ resultType: "segment-loaded",
|
|
@@ -66,6 +66,7 @@ export default function generateTextTrackLoader({ lowLatencyMode, checkMediaSegm
|
|
|
66
66
|
{ Range: byteRange(range) } :
|
|
67
67
|
null,
|
|
68
68
|
timeout: options.timeout,
|
|
69
|
+
connectionTimeout: options.connectionTimeout,
|
|
69
70
|
onProgress: callbacks.onProgress,
|
|
70
71
|
cancelSignal })
|
|
71
72
|
.then((data) => ({ resultType: "segment-loaded",
|
|
@@ -77,6 +78,7 @@ export default function generateTextTrackLoader({ lowLatencyMode, checkMediaSegm
|
|
|
77
78
|
{ Range: byteRange(range) } :
|
|
78
79
|
null,
|
|
79
80
|
timeout: options.timeout,
|
|
81
|
+
connectionTimeout: options.connectionTimeout,
|
|
80
82
|
onProgress: callbacks.onProgress,
|
|
81
83
|
cancelSignal })
|
|
82
84
|
.then((data) => ({ resultType: "segment-loaded",
|
|
@@ -107,7 +107,10 @@ export default function (options) {
|
|
|
107
107
|
* Whether a ManifestLoader's timeout should be relied on here
|
|
108
108
|
* is ambiguous.
|
|
109
109
|
*/
|
|
110
|
-
const manOpts = {
|
|
110
|
+
const manOpts = {
|
|
111
|
+
timeout: config.getCurrent().DEFAULT_REQUEST_TIMEOUT,
|
|
112
|
+
connectionTimeout: config.getCurrent().DEFAULT_CONNECTION_TIMEOUT,
|
|
113
|
+
};
|
|
111
114
|
return transport.manifest.loadManifest(resource.url, manOpts, cancelSignal);
|
|
112
115
|
}
|
|
113
116
|
});
|
|
@@ -133,6 +133,7 @@ export default function (transportOptions) {
|
|
|
133
133
|
return request({ url,
|
|
134
134
|
responseType: "text",
|
|
135
135
|
timeout: loaderOptions.timeout,
|
|
136
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
136
137
|
cancelSignal,
|
|
137
138
|
onProgress: callbacks.onProgress })
|
|
138
139
|
.then((data) => ({ resultType: "segment-loaded",
|
|
@@ -142,6 +143,7 @@ export default function (transportOptions) {
|
|
|
142
143
|
return request({ url,
|
|
143
144
|
responseType: "arraybuffer",
|
|
144
145
|
timeout: loaderOptions.timeout,
|
|
146
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
145
147
|
cancelSignal,
|
|
146
148
|
onProgress: callbacks.onProgress })
|
|
147
149
|
.then((data) => {
|
|
@@ -40,6 +40,7 @@ function regularSegmentLoader(url, context, callbacks, loaderOptions, cancelSign
|
|
|
40
40
|
responseType: "arraybuffer",
|
|
41
41
|
headers,
|
|
42
42
|
timeout: loaderOptions.timeout,
|
|
43
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
43
44
|
cancelSignal,
|
|
44
45
|
onProgress: callbacks.onProgress })
|
|
45
46
|
.then((data) => {
|
|
@@ -135,6 +135,12 @@ export interface IManifestLoaderOptions {
|
|
|
135
135
|
* `undefined` means that no timeout will be enforced.
|
|
136
136
|
*/
|
|
137
137
|
timeout?: number | undefined;
|
|
138
|
+
/**
|
|
139
|
+
* Connection timeout, in milliseconds, after which the request is canceled
|
|
140
|
+
* if the responses headers has not being received.
|
|
141
|
+
* Do not set or set to "undefined" to disable it.
|
|
142
|
+
*/
|
|
143
|
+
connectionTimeout?: number | undefined;
|
|
138
144
|
}
|
|
139
145
|
/** Functions allowing to load and parse segments of any type. */
|
|
140
146
|
export interface ISegmentPipeline<TLoadedFormat, TParsedSegmentDataFormat> {
|
|
@@ -168,6 +174,12 @@ export interface ISegmentLoaderOptions {
|
|
|
168
174
|
* `undefined` means that no timeout will be enforced.
|
|
169
175
|
*/
|
|
170
176
|
timeout?: number | undefined;
|
|
177
|
+
/**
|
|
178
|
+
* Connection timeout, in milliseconds, after which the request is canceled
|
|
179
|
+
* if the responses headers has not being received.
|
|
180
|
+
* Do not set or set to "undefined" to disable it.
|
|
181
|
+
*/
|
|
182
|
+
connectionTimeout?: number | undefined;
|
|
171
183
|
}
|
|
172
184
|
/**
|
|
173
185
|
* Segment parser function, allowing to parse a chunk (which may be a sub-part
|
|
@@ -34,16 +34,19 @@ function generateRegularManifestLoader(preferredType) {
|
|
|
34
34
|
return request({ url,
|
|
35
35
|
responseType: "arraybuffer",
|
|
36
36
|
timeout: loaderOptions.timeout,
|
|
37
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
37
38
|
cancelSignal });
|
|
38
39
|
case "text":
|
|
39
40
|
return request({ url,
|
|
40
41
|
responseType: "text",
|
|
41
42
|
timeout: loaderOptions.timeout,
|
|
43
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
42
44
|
cancelSignal });
|
|
43
45
|
case "document":
|
|
44
46
|
return request({ url,
|
|
45
47
|
responseType: "document",
|
|
46
48
|
timeout: loaderOptions.timeout,
|
|
49
|
+
connectionTimeout: loaderOptions.connectionTimeout,
|
|
47
50
|
cancelSignal });
|
|
48
51
|
default:
|
|
49
52
|
assertUnreachable(preferredType);
|
|
@@ -67,6 +67,12 @@ export interface IFetchOptions {
|
|
|
67
67
|
* if not all data has been received yet.
|
|
68
68
|
*/
|
|
69
69
|
timeout?: number | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Optional connection timeout, in milliseconds, after which the request is canceled
|
|
72
|
+
* if the responses headers has not being received.
|
|
73
|
+
* Do not set or set to "undefined" to disable it.
|
|
74
|
+
*/
|
|
75
|
+
connectionTimeout?: number | undefined;
|
|
70
76
|
}
|
|
71
77
|
export default function fetchRequest(options: IFetchOptions): Promise<IFetchedStreamComplete>;
|
|
72
78
|
/**
|
|
@@ -40,7 +40,8 @@ export default function fetchRequest(options) {
|
|
|
40
40
|
}
|
|
41
41
|
log.debug("Fetch: Called with URL", options.url);
|
|
42
42
|
let cancellation = null;
|
|
43
|
-
let
|
|
43
|
+
let isTimedOut = false;
|
|
44
|
+
let isConnectionTimedOut = false;
|
|
44
45
|
const sendingTime = getMonotonicTimeStamp();
|
|
45
46
|
const abortController = !isNullOrUndefined(_AbortController) ? new _AbortController() :
|
|
46
47
|
null;
|
|
@@ -55,13 +56,26 @@ export default function fetchRequest(options) {
|
|
|
55
56
|
}
|
|
56
57
|
abortController.abort();
|
|
57
58
|
}
|
|
58
|
-
let
|
|
59
|
+
let timeoutId;
|
|
59
60
|
if (options.timeout !== undefined) {
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
timeoutId = setTimeout(() => {
|
|
62
|
+
isTimedOut = true;
|
|
63
|
+
if (connectionTimeoutId !== undefined) {
|
|
64
|
+
clearTimeout(connectionTimeoutId);
|
|
65
|
+
}
|
|
62
66
|
abortFetch();
|
|
63
67
|
}, options.timeout);
|
|
64
68
|
}
|
|
69
|
+
let connectionTimeoutId;
|
|
70
|
+
if (options.connectionTimeout !== undefined) {
|
|
71
|
+
connectionTimeoutId = setTimeout(() => {
|
|
72
|
+
isConnectionTimedOut = true;
|
|
73
|
+
if (timeoutId !== undefined) {
|
|
74
|
+
clearTimeout(timeoutId);
|
|
75
|
+
}
|
|
76
|
+
abortFetch();
|
|
77
|
+
}, options.connectionTimeout);
|
|
78
|
+
}
|
|
65
79
|
const deregisterCancelLstnr = options.cancelSignal
|
|
66
80
|
.register(function abortRequest(err) {
|
|
67
81
|
cancellation = err;
|
|
@@ -74,8 +88,8 @@ export default function fetchRequest(options) {
|
|
|
74
88
|
fetchOpts.signal = !isNullOrUndefined(abortController) ? abortController.signal :
|
|
75
89
|
null;
|
|
76
90
|
return fetch(options.url, fetchOpts).then((response) => {
|
|
77
|
-
if (
|
|
78
|
-
clearTimeout(
|
|
91
|
+
if (connectionTimeoutId !== undefined) {
|
|
92
|
+
clearTimeout(connectionTimeoutId);
|
|
79
93
|
}
|
|
80
94
|
if (response.status >= 300) {
|
|
81
95
|
log.warn("Fetch: Request HTTP Error", response.status, response.url);
|
|
@@ -108,6 +122,9 @@ export default function fetchRequest(options) {
|
|
|
108
122
|
return readBufferAndSendEvents();
|
|
109
123
|
}
|
|
110
124
|
else if (data.done) {
|
|
125
|
+
if (timeoutId !== undefined) {
|
|
126
|
+
clearTimeout(timeoutId);
|
|
127
|
+
}
|
|
111
128
|
deregisterCancelLstnr();
|
|
112
129
|
const receivedTime = getMonotonicTimeStamp();
|
|
113
130
|
const requestDuration = receivedTime - sendingTime;
|
|
@@ -125,8 +142,12 @@ export default function fetchRequest(options) {
|
|
|
125
142
|
throw cancellation;
|
|
126
143
|
}
|
|
127
144
|
deregisterCancelLstnr();
|
|
128
|
-
if (
|
|
129
|
-
log.warn("Fetch: Request
|
|
145
|
+
if (isTimedOut) {
|
|
146
|
+
log.warn("Fetch: Request timed out.");
|
|
147
|
+
throw new RequestError(options.url, 0, NetworkErrorTypes.TIMEOUT);
|
|
148
|
+
}
|
|
149
|
+
else if (isConnectionTimedOut) {
|
|
150
|
+
log.warn("Fetch: Request connection timed out.");
|
|
130
151
|
throw new RequestError(options.url, 0, NetworkErrorTypes.TIMEOUT);
|
|
131
152
|
}
|
|
132
153
|
else if (err instanceof RequestError) {
|
|
@@ -18,14 +18,14 @@ import { CancellationSignal } from "../task_canceller";
|
|
|
18
18
|
* Perform an HTTP request, according to the options given.
|
|
19
19
|
*
|
|
20
20
|
* Several errors can be rejected. Namely:
|
|
21
|
-
* -
|
|
22
|
-
*
|
|
23
|
-
* -
|
|
21
|
+
* - NetworkErrorTypes.TIMEOUT: the request timed out (took too long)
|
|
22
|
+
*
|
|
23
|
+
* - NetworkErrorTypes.PARSE_ERROR: the browser APIs used to parse the
|
|
24
24
|
* data failed.
|
|
25
|
-
* -
|
|
25
|
+
* - NetworkErrorTypes.ERROR_HTTP_CODE: the HTTP code at the time of reception
|
|
26
26
|
* was not in the 200-299 (included)
|
|
27
27
|
* range.
|
|
28
|
-
* -
|
|
28
|
+
* - NetworkErrorTypes.ERROR_EVENT: The XHR had an error event before the
|
|
29
29
|
* response could be fetched.
|
|
30
30
|
* @param {Object} options
|
|
31
31
|
* @returns {Promise.<Object>}
|
|
@@ -50,6 +50,12 @@ export interface IRequestOptions<ResponseType> {
|
|
|
50
50
|
* To not set or to set to `undefined` for disable.
|
|
51
51
|
*/
|
|
52
52
|
timeout?: number | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Optional connection timeout, in milliseconds, after which the request is canceled
|
|
55
|
+
* if the responses headers has not being received.
|
|
56
|
+
* Do not set or set to "undefined" to disable it.
|
|
57
|
+
*/
|
|
58
|
+
connectionTimeout?: number | undefined;
|
|
53
59
|
/**
|
|
54
60
|
* "Cancelation token" used to be able to cancel the request.
|
|
55
61
|
* When this token is "cancelled", the request will be aborted and the Promise
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { RequestError } from "../../errors";
|
|
16
|
+
import { NetworkErrorTypes, RequestError } from "../../errors";
|
|
17
17
|
import isNonEmptyString from "../is_non_empty_string";
|
|
18
18
|
import isNullOrUndefined from "../is_null_or_undefined";
|
|
19
19
|
import getMonotonicTimeStamp from "../monotonic_timestamp";
|
|
@@ -25,10 +25,11 @@ export default function request(options) {
|
|
|
25
25
|
responseType: isNullOrUndefined(options.responseType) ? DEFAULT_RESPONSE_TYPE :
|
|
26
26
|
options.responseType,
|
|
27
27
|
timeout: options.timeout,
|
|
28
|
+
connectionTimeout: options.connectionTimeout,
|
|
28
29
|
};
|
|
29
30
|
return new Promise((resolve, reject) => {
|
|
30
31
|
const { onProgress, cancelSignal } = options;
|
|
31
|
-
const { url, headers, responseType, timeout } = requestOptions;
|
|
32
|
+
const { url, headers, responseType, timeout, connectionTimeout } = requestOptions;
|
|
32
33
|
const xhr = new XMLHttpRequest();
|
|
33
34
|
xhr.open("GET", url, true);
|
|
34
35
|
let timeoutId;
|
|
@@ -42,9 +43,19 @@ export default function request(options) {
|
|
|
42
43
|
// is more precise, it might also be more efficient.
|
|
43
44
|
timeoutId = setTimeout(() => {
|
|
44
45
|
clearCancellingProcess();
|
|
45
|
-
reject(new RequestError(url, xhr.status,
|
|
46
|
+
reject(new RequestError(url, xhr.status, NetworkErrorTypes.TIMEOUT));
|
|
46
47
|
}, timeout + 3000);
|
|
47
48
|
}
|
|
49
|
+
let connectionTimeoutId;
|
|
50
|
+
if (connectionTimeout !== undefined) {
|
|
51
|
+
connectionTimeoutId = setTimeout(() => {
|
|
52
|
+
clearCancellingProcess();
|
|
53
|
+
if (xhr.readyState !== XMLHttpRequest.DONE) {
|
|
54
|
+
xhr.abort();
|
|
55
|
+
}
|
|
56
|
+
reject(new RequestError(url, xhr.status, NetworkErrorTypes.TIMEOUT));
|
|
57
|
+
}, connectionTimeout);
|
|
58
|
+
}
|
|
48
59
|
xhr.responseType = responseType;
|
|
49
60
|
if (xhr.responseType === "document") {
|
|
50
61
|
xhr.overrideMimeType("text/xml");
|
|
@@ -64,7 +75,7 @@ export default function request(options) {
|
|
|
64
75
|
deregisterCancellationListener = cancelSignal
|
|
65
76
|
.register(function abortRequest(err) {
|
|
66
77
|
clearCancellingProcess();
|
|
67
|
-
if (
|
|
78
|
+
if (xhr.readyState !== XMLHttpRequest.DONE) {
|
|
68
79
|
xhr.abort();
|
|
69
80
|
}
|
|
70
81
|
reject(err);
|
|
@@ -75,12 +86,19 @@ export default function request(options) {
|
|
|
75
86
|
}
|
|
76
87
|
xhr.onerror = function onXHRError() {
|
|
77
88
|
clearCancellingProcess();
|
|
78
|
-
reject(new RequestError(url, xhr.status,
|
|
89
|
+
reject(new RequestError(url, xhr.status, NetworkErrorTypes.ERROR_EVENT));
|
|
79
90
|
};
|
|
80
91
|
xhr.ontimeout = function onXHRTimeout() {
|
|
81
92
|
clearCancellingProcess();
|
|
82
|
-
reject(new RequestError(url, xhr.status,
|
|
93
|
+
reject(new RequestError(url, xhr.status, NetworkErrorTypes.TIMEOUT));
|
|
83
94
|
};
|
|
95
|
+
if (connectionTimeout !== undefined) {
|
|
96
|
+
xhr.onreadystatechange = function clearConnectionTimeout() {
|
|
97
|
+
if (xhr.readyState >= XMLHttpRequest.HEADERS_RECEIVED) {
|
|
98
|
+
clearTimeout(connectionTimeoutId);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
84
102
|
if (onProgress !== undefined) {
|
|
85
103
|
xhr.onprogress = function onXHRProgress(event) {
|
|
86
104
|
const currentTime = getMonotonicTimeStamp();
|
|
@@ -93,7 +111,7 @@ export default function request(options) {
|
|
|
93
111
|
};
|
|
94
112
|
}
|
|
95
113
|
xhr.onload = function onXHRLoad(event) {
|
|
96
|
-
if (xhr.readyState ===
|
|
114
|
+
if (xhr.readyState === XMLHttpRequest.DONE) {
|
|
97
115
|
clearCancellingProcess();
|
|
98
116
|
if (xhr.status >= 200 && xhr.status < 300) {
|
|
99
117
|
const receivedTime = getMonotonicTimeStamp();
|
|
@@ -117,7 +135,7 @@ export default function request(options) {
|
|
|
117
135
|
responseData = xhr.response;
|
|
118
136
|
}
|
|
119
137
|
if (isNullOrUndefined(responseData)) {
|
|
120
|
-
reject(new RequestError(url, xhr.status,
|
|
138
|
+
reject(new RequestError(url, xhr.status, NetworkErrorTypes.PARSE_ERROR));
|
|
121
139
|
return;
|
|
122
140
|
}
|
|
123
141
|
resolve({ status,
|
|
@@ -130,7 +148,7 @@ export default function request(options) {
|
|
|
130
148
|
responseData });
|
|
131
149
|
}
|
|
132
150
|
else {
|
|
133
|
-
reject(new RequestError(url, xhr.status,
|
|
151
|
+
reject(new RequestError(url, xhr.status, NetworkErrorTypes.ERROR_HTTP_CODE));
|
|
134
152
|
}
|
|
135
153
|
}
|
|
136
154
|
};
|
|
@@ -142,6 +160,9 @@ export default function request(options) {
|
|
|
142
160
|
if (timeoutId !== undefined) {
|
|
143
161
|
clearTimeout(timeoutId);
|
|
144
162
|
}
|
|
163
|
+
if (connectionTimeoutId !== undefined) {
|
|
164
|
+
clearTimeout(connectionTimeoutId);
|
|
165
|
+
}
|
|
145
166
|
if (deregisterCancellationListener !== null) {
|
|
146
167
|
deregisterCancellationListener();
|
|
147
168
|
}
|
package/dist/mpd-parser.wasm
CHANGED
|
Binary file
|