rx-player 4.2.0-dev.2024090300 → 4.2.0-dev.2024090500
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 +1 -1
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/compat/add_class_name.d.ts.map +1 -1
- package/dist/commonjs/compat/add_class_name.js +1 -2
- package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
- package/dist/commonjs/compat/browser_compatibility_types.js +4 -1
- package/dist/commonjs/compat/clear_element_src.js +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.js +2 -4
- package/dist/commonjs/compat/eme/custom_media_keys/ms_media_keys_constructor.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/ms_media_keys_constructor.js +2 -4
- package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.js +3 -6
- package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.js +2 -17
- package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +1 -2
- package/dist/commonjs/compat/eme/eme-api-implementation.js +0 -2
- package/dist/commonjs/compat/event_listeners.d.ts.map +1 -1
- package/dist/commonjs/compat/event_listeners.js +2 -6
- package/dist/commonjs/compat/has_mse_in_worker.js +1 -1
- package/dist/commonjs/compat/is_codec_supported.d.ts.map +1 -1
- package/dist/commonjs/compat/is_codec_supported.js +0 -2
- package/dist/commonjs/compat/is_vtt_cue.d.ts.map +1 -1
- package/dist/commonjs/compat/is_vtt_cue.js +1 -2
- package/dist/commonjs/compat/on_height_width_change.d.ts.map +1 -1
- package/dist/commonjs/compat/patch_webkit_source_buffer.d.ts.map +1 -1
- package/dist/commonjs/compat/patch_webkit_source_buffer.js +8 -18
- package/dist/commonjs/compat/remove_cue.js +2 -2
- package/dist/commonjs/core/fetchers/index.d.ts +4 -4
- package/dist/commonjs/core/fetchers/index.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/index.js +2 -2
- package/dist/commonjs/core/fetchers/segment/index.d.ts +6 -5
- package/dist/commonjs/core/fetchers/segment/index.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/segment/index.js +2 -2
- package/dist/{es2017/core/stream/representation/utils/downloading_queue.d.ts → commonjs/core/fetchers/segment/segment_queue.d.ts} +63 -80
- package/dist/commonjs/core/fetchers/segment/segment_queue.d.ts.map +1 -0
- package/dist/commonjs/core/{stream/representation/utils/downloading_queue.js → fetchers/segment/segment_queue.js} +132 -111
- package/dist/commonjs/core/fetchers/segment/{segment_fetcher_creator.d.ts → segment_queue_creator.d.ts} +25 -12
- package/dist/commonjs/core/fetchers/segment/segment_queue_creator.d.ts.map +1 -0
- package/dist/commonjs/core/fetchers/segment/{segment_fetcher_creator.js → segment_queue_creator.js} +15 -9
- package/dist/commonjs/core/fetchers/segment/task_prioritizer.d.ts +9 -0
- package/dist/commonjs/core/fetchers/segment/task_prioritizer.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/segment/task_prioritizer.js +38 -8
- package/dist/commonjs/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/commonjs/core/main/common/content_time_boundaries_observer.js +21 -10
- package/dist/commonjs/core/main/worker/content_preparer.d.ts +3 -3
- package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -1
- package/dist/commonjs/core/main/worker/content_preparer.js +2 -2
- package/dist/commonjs/core/main/worker/send_message.js +1 -1
- package/dist/commonjs/core/main/worker/worker_main.js +2 -2
- package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_buffer.js +1 -5
- package/dist/commonjs/core/segment_sinks/inventory/segment_inventory.js +39 -30
- package/dist/commonjs/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
- package/dist/commonjs/core/segment_sinks/segment_buffers_store.js +3 -2
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts +1 -1
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +3 -3
- package/dist/commonjs/core/stream/adaptation/types.d.ts +2 -2
- package/dist/commonjs/core/stream/adaptation/types.d.ts.map +1 -1
- package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.d.ts.map +1 -1
- package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.js +27 -6
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts +3 -3
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/commonjs/core/stream/period/period_stream.d.ts +1 -1
- package/dist/commonjs/core/stream/period/period_stream.d.ts.map +1 -1
- package/dist/commonjs/core/stream/period/period_stream.js +2 -2
- package/dist/commonjs/core/stream/period/types.d.ts +2 -2
- package/dist/commonjs/core/stream/period/types.d.ts.map +1 -1
- package/dist/commonjs/core/stream/representation/representation_stream.d.ts +1 -1
- package/dist/commonjs/core/stream/representation/representation_stream.d.ts.map +1 -1
- package/dist/commonjs/core/stream/representation/representation_stream.js +19 -28
- package/dist/commonjs/core/stream/representation/types.d.ts +2 -2
- package/dist/commonjs/core/stream/representation/types.d.ts.map +1 -1
- package/dist/commonjs/core/stream/representation/utils/get_needed_segments.d.ts.map +1 -1
- package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +39 -18
- package/dist/commonjs/core/types.d.ts +2 -2
- package/dist/commonjs/core/types.d.ts.map +1 -1
- package/dist/commonjs/default_config.d.ts.map +1 -1
- package/dist/commonjs/default_config.js +0 -8
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +0 -13
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +0 -4
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +1 -2
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +2 -13
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -2
- package/dist/commonjs/features/add_features.d.ts.map +1 -1
- package/dist/commonjs/features/add_features.js +31 -10
- package/dist/commonjs/main_thread/api/option_utils.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/option_utils.js +2 -6
- package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +33 -27
- package/dist/commonjs/main_thread/decrypt/utils/persistent_sessions_store.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/utils/persistent_sessions_store.js +4 -3
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +6 -6
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +32 -37
- package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.js +1 -5
- package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.js +3 -7
- package/dist/commonjs/main_thread/tracks_store/track_dispatcher.js +1 -1
- package/dist/commonjs/main_thread/types.d.ts.map +1 -1
- package/dist/commonjs/manifest/classes/manifest.d.ts.map +1 -1
- package/dist/commonjs/manifest/classes/manifest.js +0 -6
- package/dist/commonjs/manifest/utils.d.ts.map +1 -1
- package/dist/commonjs/manifest/utils.js +72 -62
- package/dist/commonjs/mse/main_media_source_interface.js +1 -1
- package/dist/commonjs/multithread_types.d.ts +2 -2
- package/dist/commonjs/multithread_types.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/parse_s_element.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +12 -6
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.js +14 -7
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.js +8 -4
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Period.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Period.js +10 -5
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.js +10 -5
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.js +14 -7
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/EventStream.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/EventStream.js +2 -1
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/MPD.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/MPD.js +8 -4
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Period.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Period.js +10 -5
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Representation.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Representation.js +10 -5
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +2 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +2 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +4 -2
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/MPD.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +10 -5
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Period.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +2 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/root.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/root.js +2 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.js +29 -8
- package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +31 -10
- package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/create_parser.js +2 -1
- package/dist/commonjs/parsers/manifest/smooth/shared_smooth_segment_timeline.js +26 -4
- package/dist/commonjs/parsers/manifest/utils/get_first_time_from_adaptation.js +29 -7
- package/dist/commonjs/parsers/manifest/utils/get_last_time_from_adaptation.js +29 -7
- package/dist/commonjs/parsers/texttracks/srt/html.js +28 -6
- package/dist/commonjs/parsers/texttracks/ttml/html/create_element.js +1 -1
- package/dist/commonjs/parsers/texttracks/ttml/html/parse_ttml_to_div.js +29 -7
- package/dist/commonjs/parsers/texttracks/ttml/native/parse_ttml_to_vtt.d.ts.map +1 -1
- package/dist/commonjs/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +26 -5
- package/dist/commonjs/parsers/texttracks/ttml/resolve_styles_inheritance.d.ts.map +1 -1
- package/dist/commonjs/parsers/texttracks/ttml/resolve_styles_inheritance.js +25 -4
- package/dist/commonjs/parsers/texttracks/webvtt/html/to_html.d.ts +9 -3
- package/dist/commonjs/parsers/texttracks/webvtt/html/to_html.d.ts.map +1 -1
- package/dist/commonjs/parsers/texttracks/webvtt/html/to_html.js +9 -3
- package/dist/commonjs/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +30 -8
- package/dist/commonjs/public_types.d.ts +5 -7
- package/dist/commonjs/public_types.d.ts.map +1 -1
- package/dist/commonjs/transports/smooth/extract_timings_infos.js +30 -8
- package/dist/commonjs/utils/array_find.d.ts +1 -1
- package/dist/commonjs/utils/array_find.d.ts.map +1 -1
- package/dist/commonjs/utils/array_find.js +3 -1
- package/dist/commonjs/utils/array_find_index.d.ts +1 -1
- package/dist/commonjs/utils/array_find_index.d.ts.map +1 -1
- package/dist/commonjs/utils/array_find_index.js +3 -1
- package/dist/commonjs/utils/array_includes.d.ts.map +1 -1
- package/dist/commonjs/utils/array_includes.js +1 -3
- package/dist/commonjs/utils/assert.d.ts.map +1 -1
- package/dist/commonjs/utils/assert.js +0 -2
- package/dist/commonjs/utils/base64.d.ts +1 -1
- package/dist/commonjs/utils/base64.d.ts.map +1 -1
- package/dist/commonjs/utils/base64.js +3 -2
- package/dist/commonjs/utils/event_emitter.js +1 -1
- package/dist/commonjs/utils/flat_map.d.ts.map +1 -1
- package/dist/commonjs/utils/flat_map.js +1 -2
- package/dist/commonjs/utils/id_generator.d.ts.map +1 -1
- package/dist/commonjs/utils/id_generator.js +0 -1
- package/dist/commonjs/utils/logger.js +1 -1
- package/dist/commonjs/utils/monotonic_timestamp.js +2 -2
- package/dist/commonjs/utils/noop.js +1 -2
- package/dist/commonjs/utils/object_assign.d.ts.map +1 -1
- package/dist/commonjs/utils/object_assign.js +27 -6
- package/dist/commonjs/utils/object_values.d.ts.map +1 -1
- package/dist/commonjs/utils/object_values.js +1 -1
- package/dist/commonjs/utils/reference.js +1 -1
- package/dist/commonjs/utils/request/xhr.js +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/compat/add_class_name.d.ts.map +1 -1
- package/dist/es2017/compat/add_class_name.js +1 -2
- package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
- package/dist/es2017/compat/browser_compatibility_types.js +4 -1
- package/dist/es2017/compat/clear_element_src.js +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts.map +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.js +2 -4
- package/dist/es2017/compat/eme/custom_media_keys/ms_media_keys_constructor.d.ts.map +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/ms_media_keys_constructor.js +2 -4
- package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts.map +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.js +3 -6
- package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.js +2 -17
- package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts.map +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +1 -2
- package/dist/es2017/compat/eme/eme-api-implementation.js +0 -2
- package/dist/es2017/compat/event_listeners.d.ts.map +1 -1
- package/dist/es2017/compat/event_listeners.js +2 -6
- package/dist/es2017/compat/has_mse_in_worker.js +1 -1
- package/dist/es2017/compat/is_codec_supported.d.ts.map +1 -1
- package/dist/es2017/compat/is_codec_supported.js +0 -2
- package/dist/es2017/compat/is_vtt_cue.d.ts.map +1 -1
- package/dist/es2017/compat/is_vtt_cue.js +1 -2
- package/dist/es2017/compat/on_height_width_change.d.ts.map +1 -1
- package/dist/es2017/compat/patch_webkit_source_buffer.d.ts.map +1 -1
- package/dist/es2017/compat/patch_webkit_source_buffer.js +8 -18
- package/dist/es2017/compat/remove_cue.js +2 -2
- package/dist/es2017/core/fetchers/index.d.ts +4 -4
- package/dist/es2017/core/fetchers/index.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/index.js +2 -2
- package/dist/es2017/core/fetchers/segment/index.d.ts +6 -5
- package/dist/es2017/core/fetchers/segment/index.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/segment/index.js +2 -2
- package/dist/{commonjs/core/stream/representation/utils/downloading_queue.d.ts → es2017/core/fetchers/segment/segment_queue.d.ts} +63 -80
- package/dist/es2017/core/fetchers/segment/segment_queue.d.ts.map +1 -0
- package/dist/es2017/core/{stream/representation/utils/downloading_queue.js → fetchers/segment/segment_queue.js} +126 -105
- package/dist/es2017/core/fetchers/segment/{segment_fetcher_creator.d.ts → segment_queue_creator.d.ts} +25 -12
- package/dist/es2017/core/fetchers/segment/segment_queue_creator.d.ts.map +1 -0
- package/dist/es2017/core/fetchers/segment/{segment_fetcher_creator.js → segment_queue_creator.js} +12 -6
- package/dist/es2017/core/fetchers/segment/task_prioritizer.d.ts +9 -0
- package/dist/es2017/core/fetchers/segment/task_prioritizer.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/segment/task_prioritizer.js +10 -2
- package/dist/es2017/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/es2017/core/main/common/content_time_boundaries_observer.js +4 -4
- package/dist/es2017/core/main/worker/content_preparer.d.ts +3 -3
- package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -1
- package/dist/es2017/core/main/worker/content_preparer.js +3 -3
- package/dist/es2017/core/main/worker/send_message.js +1 -1
- package/dist/es2017/core/main/worker/worker_main.js +2 -2
- package/dist/es2017/core/segment_sinks/implementations/text/text_segment_buffer.js +1 -5
- package/dist/es2017/core/segment_sinks/inventory/segment_inventory.js +1 -2
- package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
- package/dist/es2017/core/segment_sinks/segment_buffers_store.js +3 -2
- package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts +1 -1
- package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
- package/dist/es2017/core/stream/adaptation/adaptation_stream.js +3 -3
- package/dist/es2017/core/stream/adaptation/types.d.ts +2 -2
- package/dist/es2017/core/stream/adaptation/types.d.ts.map +1 -1
- package/dist/es2017/core/stream/orchestrator/get_time_ranges_for_content.d.ts.map +1 -1
- package/dist/es2017/core/stream/orchestrator/get_time_ranges_for_content.js +1 -2
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts +3 -3
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/es2017/core/stream/period/period_stream.d.ts +1 -1
- package/dist/es2017/core/stream/period/period_stream.d.ts.map +1 -1
- package/dist/es2017/core/stream/period/period_stream.js +2 -2
- package/dist/es2017/core/stream/period/types.d.ts +2 -2
- package/dist/es2017/core/stream/period/types.d.ts.map +1 -1
- package/dist/es2017/core/stream/representation/representation_stream.d.ts +1 -1
- package/dist/es2017/core/stream/representation/representation_stream.d.ts.map +1 -1
- package/dist/es2017/core/stream/representation/representation_stream.js +19 -28
- package/dist/es2017/core/stream/representation/types.d.ts +2 -2
- package/dist/es2017/core/stream/representation/types.d.ts.map +1 -1
- package/dist/es2017/core/stream/representation/utils/get_needed_segments.d.ts.map +1 -1
- package/dist/es2017/core/stream/representation/utils/get_needed_segments.js +1 -2
- package/dist/es2017/core/types.d.ts +2 -2
- package/dist/es2017/core/types.d.ts.map +1 -1
- package/dist/es2017/default_config.d.ts.map +1 -1
- package/dist/es2017/default_config.js +0 -8
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +0 -13
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +0 -4
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +1 -2
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +2 -13
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -2
- package/dist/es2017/features/add_features.d.ts.map +1 -1
- package/dist/es2017/features/add_features.js +1 -2
- package/dist/es2017/main_thread/api/option_utils.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/option_utils.js +2 -6
- package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.js +29 -23
- package/dist/es2017/main_thread/decrypt/utils/persistent_sessions_store.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/utils/persistent_sessions_store.js +2 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +6 -6
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +7 -12
- package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.js +1 -5
- package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.js +3 -7
- package/dist/es2017/main_thread/tracks_store/track_dispatcher.js +1 -1
- package/dist/es2017/main_thread/types.d.ts.map +1 -1
- package/dist/es2017/manifest/classes/manifest.d.ts.map +1 -1
- package/dist/es2017/manifest/classes/manifest.js +0 -6
- package/dist/es2017/manifest/utils.d.ts.map +1 -1
- package/dist/es2017/manifest/utils.js +1 -2
- package/dist/es2017/mse/main_media_source_interface.js +1 -1
- package/dist/es2017/multithread_types.d.ts +2 -2
- package/dist/es2017/multithread_types.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/parse_s_element.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +12 -6
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.js +14 -7
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.js +8 -4
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Period.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Period.js +10 -5
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.js +10 -5
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.js +14 -7
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/EventStream.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/EventStream.js +2 -1
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/MPD.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/MPD.js +8 -4
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Period.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Period.js +10 -5
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Representation.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Representation.js +10 -5
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -2
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +2 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +2 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +4 -2
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/MPD.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +10 -5
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Period.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +2 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/root.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/root.js +2 -1
- package/dist/es2017/parsers/manifest/local/representation_index.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/local/representation_index.js +1 -2
- package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.js +2 -3
- package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.js +2 -1
- package/dist/es2017/parsers/manifest/smooth/shared_smooth_segment_timeline.js +2 -2
- package/dist/es2017/parsers/manifest/utils/get_first_time_from_adaptation.js +2 -2
- package/dist/es2017/parsers/manifest/utils/get_last_time_from_adaptation.js +2 -2
- package/dist/es2017/parsers/texttracks/srt/html.js +2 -2
- package/dist/es2017/parsers/texttracks/ttml/html/create_element.js +1 -1
- package/dist/es2017/parsers/texttracks/ttml/html/parse_ttml_to_div.js +3 -3
- package/dist/es2017/parsers/texttracks/ttml/native/parse_ttml_to_vtt.d.ts.map +1 -1
- package/dist/es2017/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +1 -2
- package/dist/es2017/parsers/texttracks/ttml/resolve_styles_inheritance.d.ts.map +1 -1
- package/dist/es2017/parsers/texttracks/ttml/resolve_styles_inheritance.js +1 -2
- package/dist/es2017/parsers/texttracks/webvtt/html/to_html.d.ts +9 -3
- package/dist/es2017/parsers/texttracks/webvtt/html/to_html.d.ts.map +1 -1
- package/dist/es2017/parsers/texttracks/webvtt/html/to_html.js +9 -3
- package/dist/es2017/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +2 -2
- package/dist/es2017/public_types.d.ts +5 -7
- package/dist/es2017/public_types.d.ts.map +1 -1
- package/dist/es2017/transports/smooth/extract_timings_infos.js +3 -3
- package/dist/es2017/utils/array_find.d.ts +1 -1
- package/dist/es2017/utils/array_find.d.ts.map +1 -1
- package/dist/es2017/utils/array_find.js +3 -1
- package/dist/es2017/utils/array_find_index.d.ts +1 -1
- package/dist/es2017/utils/array_find_index.d.ts.map +1 -1
- package/dist/es2017/utils/array_find_index.js +3 -1
- package/dist/es2017/utils/array_includes.d.ts.map +1 -1
- package/dist/es2017/utils/array_includes.js +1 -3
- package/dist/es2017/utils/assert.d.ts.map +1 -1
- package/dist/es2017/utils/assert.js +0 -2
- package/dist/es2017/utils/base64.d.ts +1 -1
- package/dist/es2017/utils/base64.d.ts.map +1 -1
- package/dist/es2017/utils/base64.js +3 -2
- package/dist/es2017/utils/event_emitter.js +1 -1
- package/dist/es2017/utils/flat_map.d.ts.map +1 -1
- package/dist/es2017/utils/flat_map.js +1 -2
- package/dist/es2017/utils/id_generator.d.ts.map +1 -1
- package/dist/es2017/utils/id_generator.js +0 -1
- package/dist/es2017/utils/logger.js +1 -1
- package/dist/es2017/utils/monotonic_timestamp.js +2 -2
- package/dist/es2017/utils/noop.js +1 -2
- package/dist/es2017/utils/object_assign.d.ts.map +1 -1
- package/dist/es2017/utils/object_assign.js +1 -2
- package/dist/es2017/utils/object_values.d.ts.map +1 -1
- package/dist/es2017/utils/object_values.js +1 -2
- package/dist/es2017/utils/reference.js +1 -1
- package/dist/es2017/utils/request/xhr.js +1 -1
- package/dist/rx-player.js +39336 -18
- package/dist/rx-player.min.js +18 -0
- package/dist/worker.js +5 -5
- package/package.json +16 -9
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/compat/__tests__/add_text_track.test.ts +8 -12
- package/src/compat/__tests__/browser_compatibility_types.test.ts +0 -7
- package/src/compat/__tests__/browser_version.test.ts +20 -19
- package/src/compat/__tests__/can_patch_isobmff.test.ts +7 -10
- package/src/compat/__tests__/can_rely_on_video_visibility_and_size.test.ts +17 -21
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +13 -21
- package/src/compat/__tests__/clear_element_src.test.ts +37 -34
- package/src/compat/__tests__/enable_audio_track.test.ts +22 -21
- package/src/compat/__tests__/is_codec_supported.test.ts +17 -18
- package/src/compat/__tests__/is_seeking_approximate.test.ts +8 -14
- package/src/compat/__tests__/is_vtt_cue.test.ts +8 -13
- package/src/compat/__tests__/make_vtt_cue.test.ts +7 -12
- package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +44 -32
- package/src/compat/__tests__/remove_cue.test.ts +30 -31
- package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +21 -26
- package/src/compat/__tests__/should_renew_media_key_system_access.test.ts +9 -17
- package/src/compat/__tests__/should_unset_media_keys.test.ts +7 -14
- package/src/compat/__tests__/should_validate_metadata.test.ts +7 -17
- package/src/compat/__tests__/should_wait_for_data_before_loaded.test.ts +17 -26
- package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +10 -15
- package/src/compat/add_class_name.ts +1 -2
- package/src/compat/browser_compatibility_types.ts +4 -2
- package/src/compat/clear_element_src.ts +1 -1
- package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +1 -2
- package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +1 -2
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +3 -6
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +2 -17
- package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +1 -4
- package/src/compat/eme/eme-api-implementation.ts +0 -2
- package/src/compat/event_listeners.ts +2 -6
- package/src/compat/has_mse_in_worker.ts +1 -1
- package/src/compat/is_codec_supported.ts +0 -2
- package/src/compat/is_debug_mode_enabled.ts +1 -1
- package/src/compat/is_vtt_cue.ts +1 -2
- package/src/compat/on_height_width_change.ts +1 -2
- package/src/compat/patch_webkit_source_buffer.ts +48 -29
- package/src/compat/remove_cue.ts +2 -2
- package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +21 -26
- package/src/core/fetchers/README.md +13 -12
- package/src/core/fetchers/index.ts +5 -8
- package/src/core/fetchers/segment/__tests__/task_prioritizer.test.ts +17 -23
- package/src/core/fetchers/segment/index.ts +6 -5
- package/src/core/{stream/representation/utils/downloading_queue.ts → fetchers/segment/segment_queue.ts} +204 -166
- package/src/core/fetchers/segment/{segment_fetcher_creator.ts → segment_queue_creator.ts} +31 -14
- package/src/core/fetchers/segment/task_prioritizer.ts +10 -2
- package/src/core/fetchers/utils/schedule_request.ts +1 -1
- package/src/core/main/common/content_time_boundaries_observer.ts +4 -4
- package/src/core/main/worker/content_preparer.ts +5 -5
- package/src/core/main/worker/send_message.ts +1 -1
- package/src/core/main/worker/worker_main.ts +2 -2
- package/src/core/segment_sinks/implementations/text/text_segment_buffer.ts +1 -5
- package/src/core/segment_sinks/inventory/segment_inventory.ts +1 -2
- package/src/core/segment_sinks/segment_buffers_store.ts +3 -2
- package/src/core/stream/adaptation/adaptation_stream.ts +3 -3
- package/src/core/stream/adaptation/types.ts +2 -2
- package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +1 -2
- package/src/core/stream/orchestrator/stream_orchestrator.ts +4 -4
- package/src/core/stream/period/period_stream.ts +2 -2
- package/src/core/stream/period/types.ts +2 -2
- package/src/core/stream/representation/representation_stream.ts +59 -56
- package/src/core/stream/representation/types.ts +3 -4
- package/src/core/stream/representation/utils/get_needed_segments.ts +1 -2
- package/src/core/types.ts +2 -4
- package/src/default_config.ts +0 -8
- package/src/errors/__tests__/format_error.test.ts +18 -18
- package/src/experimental/features/__tests__/multi_thread.test.ts +5 -5
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/capabilities.test.ts +11 -11
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +18 -26
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +13 -21
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +24 -20
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +28 -30
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +32 -38
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +64 -51
- package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +4 -17
- package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +0 -4
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +16 -14
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +1 -2
- package/src/features/__tests__/add_features.test.ts +12 -11
- package/src/features/add_features.ts +1 -2
- package/src/features/list/__tests__/dash_wasm.test.ts +4 -4
- package/src/main_thread/api/__tests__/option_utils.test.ts +114 -70
- package/src/main_thread/api/__tests__/public_api.test.ts +85 -48
- package/src/main_thread/api/option_utils.ts +2 -6
- package/src/main_thread/api/public_api.ts +24 -18
- package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +12 -18
- package/src/main_thread/decrypt/__tests__/__global__/init_data.test.ts +128 -101
- package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +26 -33
- package/src/main_thread/decrypt/__tests__/__global__/media_keys.test.ts +46 -48
- package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +33 -34
- package/src/main_thread/decrypt/__tests__/__global__/utils.ts +13 -17
- package/src/main_thread/decrypt/session_events_listener.ts +1 -1
- package/src/main_thread/decrypt/utils/__tests__/clean_old_loaded_sessions.test.ts +0 -5
- package/src/main_thread/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +14 -17
- package/src/main_thread/decrypt/utils/persistent_sessions_store.ts +2 -1
- package/src/main_thread/init/media_source_content_initializer.ts +7 -7
- package/src/main_thread/init/multi_thread_content_initializer.ts +7 -12
- package/src/main_thread/init/utils/__tests__/are_same_stream_events.test.ts +11 -16
- package/src/main_thread/init/utils/__tests__/refresh_scheduled_events_list.test.ts +48 -18
- package/src/main_thread/text_displayer/html/__tests__/text_track_cues_store.test.ts +32 -17
- package/src/main_thread/text_displayer/html/html_text_displayer.ts +1 -5
- package/src/main_thread/text_displayer/native/native_text_displayer.ts +3 -7
- package/src/main_thread/tracks_store/__tests__/media_element_tracks_store.test.ts +33 -28
- package/src/main_thread/tracks_store/track_dispatcher.ts +1 -1
- package/src/main_thread/types.ts +0 -1
- package/src/manifest/classes/__tests__/adaptation.test.ts +167 -62
- package/src/manifest/classes/__tests__/manifest.test.ts +130 -74
- package/src/manifest/classes/__tests__/period.test.ts +293 -211
- package/src/manifest/classes/__tests__/update_period_in_place.test.ts +0 -2
- package/src/manifest/classes/__tests__/update_periods.test.ts +57 -57
- package/src/manifest/classes/manifest.ts +0 -6
- package/src/manifest/utils.ts +1 -2
- package/src/mse/main_media_source_interface.ts +1 -1
- package/src/mse/types.ts +1 -1
- package/src/multithread_types.ts +2 -2
- package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +5 -10
- package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +38 -30
- package/src/parsers/manifest/dash/common/__tests__/get_periods_time_infos.test.ts +0 -3
- package/src/parsers/manifest/dash/common/indexes/timeline/parse_s_element.ts +12 -6
- package/src/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.ts +14 -7
- package/src/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.ts +8 -4
- package/src/parsers/manifest/dash/fast-js-parser/node_parsers/Period.ts +10 -5
- package/src/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.ts +10 -5
- package/src/parsers/manifest/dash/fast-js-parser/node_parsers/__tests__/ContentProtection.test.ts +15 -27
- package/src/parsers/manifest/dash/fast-js-parser/node_parsers/__tests__/Initialization.test.ts +13 -17
- package/src/parsers/manifest/dash/fast-js-parser/node_parsers/__tests__/SegmentURL.test.ts +18 -15
- package/src/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.ts +14 -7
- package/src/parsers/manifest/dash/native-parser/node_parsers/EventStream.ts +2 -1
- package/src/parsers/manifest/dash/native-parser/node_parsers/MPD.ts +8 -4
- package/src/parsers/manifest/dash/native-parser/node_parsers/Period.ts +10 -5
- package/src/parsers/manifest/dash/native-parser/node_parsers/Representation.ts +10 -5
- package/src/parsers/manifest/dash/native-parser/node_parsers/__tests__/ContentProtection.test.ts +15 -27
- package/src/parsers/manifest/dash/native-parser/node_parsers/__tests__/Initialization.test.ts +13 -17
- package/src/parsers/manifest/dash/native-parser/node_parsers/__tests__/SegmentTimeline.test.ts +9 -14
- package/src/parsers/manifest/dash/native-parser/node_parsers/__tests__/SegmentURL.test.ts +18 -15
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -2
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +2 -1
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.ts +2 -1
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +4 -2
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +10 -5
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +2 -1
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +2 -1
- package/src/parsers/manifest/local/representation_index.ts +1 -2
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +2 -3
- package/src/parsers/manifest/smooth/create_parser.ts +2 -1
- package/src/parsers/manifest/smooth/shared_smooth_segment_timeline.ts +2 -2
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +3 -8
- package/src/parsers/manifest/utils/get_first_time_from_adaptation.ts +2 -2
- package/src/parsers/manifest/utils/get_last_time_from_adaptation.ts +2 -2
- package/src/parsers/texttracks/srt/html.ts +2 -2
- package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +3 -7
- package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.ts +4 -4
- package/src/parsers/texttracks/ttml/html/create_element.ts +1 -1
- package/src/parsers/texttracks/ttml/html/parse_ttml_to_div.ts +3 -3
- package/src/parsers/texttracks/ttml/native/parse_ttml_to_vtt.ts +1 -2
- package/src/parsers/texttracks/ttml/resolve_styles_inheritance.ts +1 -2
- package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +11 -11
- package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +5 -18
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_style_block.test.ts +23 -28
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +9 -14
- package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +11 -11
- package/src/parsers/texttracks/webvtt/html/to_html.ts +9 -3
- package/src/parsers/texttracks/webvtt/native/parse_vtt_to_cues.ts +2 -2
- package/src/public_types.ts +7 -8
- package/src/tools/TextTrackRenderer/text_track_renderer.ts +1 -1
- package/src/transports/smooth/extract_timings_infos.ts +3 -3
- package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +30 -28
- package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +38 -44
- package/src/utils/__tests__/array_find.test.ts +12 -12
- package/src/utils/__tests__/array_find_index.test.ts +13 -12
- package/src/utils/__tests__/array_includes.test.ts +7 -7
- package/src/utils/__tests__/assert.test.ts +19 -25
- package/src/utils/__tests__/base64.test.ts +18 -13
- package/src/utils/__tests__/event_emitter.test.ts +225 -50
- package/src/utils/__tests__/flat_map.test.ts +2 -6
- package/src/utils/__tests__/starts_with.test.ts +7 -8
- package/src/utils/array_find.ts +3 -7
- package/src/utils/array_find_index.ts +3 -7
- package/src/utils/array_includes.ts +1 -3
- package/src/utils/assert.ts +0 -2
- package/src/utils/base64.ts +3 -2
- package/src/utils/event_emitter.ts +1 -1
- package/src/utils/flat_map.ts +1 -2
- package/src/utils/id_generator.ts +0 -2
- package/src/utils/is_worker.ts +1 -1
- package/src/utils/logger.ts +1 -1
- package/src/utils/monotonic_timestamp.ts +2 -2
- package/src/utils/noop.ts +1 -2
- package/src/utils/object_assign.ts +1 -2
- package/src/utils/object_values.ts +1 -2
- package/src/utils/reference.ts +1 -1
- package/src/utils/request/xhr.ts +1 -1
- package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts.map +0 -1
- package/dist/commonjs/core/stream/representation/utils/downloading_queue.d.ts.map +0 -1
- package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts.map +0 -1
- package/dist/es2017/core/stream/representation/utils/downloading_queue.d.ts.map +0 -1
|
@@ -30,57 +30,28 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
30
30
|
};
|
|
31
31
|
})();
|
|
32
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
-
var log_1 = require("
|
|
34
|
-
var assert_1 = require("
|
|
35
|
-
var event_emitter_1 = require("
|
|
36
|
-
var noop_1 = require("
|
|
37
|
-
var object_assign_1 = require("
|
|
38
|
-
var reference_1 = require("
|
|
39
|
-
var task_canceller_1 = require("
|
|
33
|
+
var log_1 = require("../../../log");
|
|
34
|
+
var assert_1 = require("../../../utils/assert");
|
|
35
|
+
var event_emitter_1 = require("../../../utils/event_emitter");
|
|
36
|
+
var noop_1 = require("../../../utils/noop");
|
|
37
|
+
var object_assign_1 = require("../../../utils/object_assign");
|
|
38
|
+
var reference_1 = require("../../../utils/reference");
|
|
39
|
+
var task_canceller_1 = require("../../../utils/task_canceller");
|
|
40
40
|
/**
|
|
41
|
-
* Class scheduling segment downloads
|
|
42
|
-
*
|
|
43
|
-
* TODO The request scheduling abstractions might be simplified by integrating
|
|
44
|
-
* the `DownloadingQueue` in the segment fetchers code, instead of having it as
|
|
45
|
-
* an utilis of the `RepresentationStream` like here.
|
|
46
|
-
* @class DownloadingQueue
|
|
41
|
+
* Class scheduling segment downloads as a FIFO queue.
|
|
47
42
|
*/
|
|
48
|
-
var
|
|
49
|
-
__extends(
|
|
43
|
+
var SegmentQueue = /** @class */ (function (_super) {
|
|
44
|
+
__extends(SegmentQueue, _super);
|
|
50
45
|
/**
|
|
51
|
-
* Create a new `
|
|
46
|
+
* Create a new `SegmentQueue`.
|
|
52
47
|
*
|
|
53
|
-
* @param {Object} content - The context of the Representation you want to
|
|
54
|
-
* load segments for.
|
|
55
|
-
* @param {Object} downloadQueue - Queue of segments you want to load.
|
|
56
48
|
* @param {Object} segmentFetcher - Interface to facilitate the download of
|
|
57
49
|
* segments.
|
|
58
|
-
* @param {boolean} hasInitSegment - Declare that an initialization segment
|
|
59
|
-
* will need to be downloaded.
|
|
60
|
-
*
|
|
61
|
-
* A `DownloadingQueue` ALWAYS wait for the initialization segment to be
|
|
62
|
-
* loaded and parsed before parsing a media segment.
|
|
63
|
-
*
|
|
64
|
-
* In cases where no initialization segment exist, this would lead to the
|
|
65
|
-
* `DownloadingQueue` waiting indefinitely for it.
|
|
66
|
-
*
|
|
67
|
-
* By setting that value to `false`, you anounce to the `DownloadingQueue`
|
|
68
|
-
* that it should not wait for an initialization segment before parsing a
|
|
69
|
-
* media segment.
|
|
70
50
|
*/
|
|
71
|
-
function
|
|
51
|
+
function SegmentQueue(segmentFetcher) {
|
|
72
52
|
var _this = _super.call(this) || this;
|
|
73
|
-
_this._content = content;
|
|
74
|
-
_this._currentCanceller = null;
|
|
75
|
-
_this._downloadQueue = downloadQueue;
|
|
76
|
-
_this._initSegmentRequest = null;
|
|
77
|
-
_this._mediaSegmentRequest = null;
|
|
78
53
|
_this._segmentFetcher = segmentFetcher;
|
|
79
|
-
_this.
|
|
80
|
-
_this._mediaSegmentAwaitingInitMetadata = null;
|
|
81
|
-
if (!hasInitSegment) {
|
|
82
|
-
_this._initSegmentInfoRef.setValue(null);
|
|
83
|
-
}
|
|
54
|
+
_this._currentContentInfo = null;
|
|
84
55
|
return _this;
|
|
85
56
|
}
|
|
86
57
|
/**
|
|
@@ -88,72 +59,116 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
88
59
|
* Returns `null` if no initialization segment request is pending.
|
|
89
60
|
* @returns {Object | null}
|
|
90
61
|
*/
|
|
91
|
-
|
|
92
|
-
|
|
62
|
+
SegmentQueue.prototype.getRequestedInitSegment = function () {
|
|
63
|
+
var _a, _b, _c;
|
|
64
|
+
return (_c = (_b = (_a = this._currentContentInfo) === null || _a === void 0 ? void 0 : _a.initSegmentRequest) === null || _b === void 0 ? void 0 : _b.segment) !== null && _c !== void 0 ? _c : null;
|
|
93
65
|
};
|
|
94
66
|
/**
|
|
95
67
|
* Returns the media segment currently being requested.
|
|
96
68
|
* Returns `null` if no media segment request is pending.
|
|
97
69
|
* @returns {Object | null}
|
|
98
70
|
*/
|
|
99
|
-
|
|
100
|
-
|
|
71
|
+
SegmentQueue.prototype.getRequestedMediaSegment = function () {
|
|
72
|
+
var _a, _b, _c;
|
|
73
|
+
return (_c = (_b = (_a = this._currentContentInfo) === null || _a === void 0 ? void 0 : _a.mediaSegmentRequest) === null || _b === void 0 ? void 0 : _b.segment) !== null && _c !== void 0 ? _c : null;
|
|
101
74
|
};
|
|
102
75
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
76
|
+
* Return an object allowing to schedule segment requests linked to the given
|
|
77
|
+
* content.
|
|
78
|
+
* The `SegmentQueue` will emit events as it loads and parses initialization
|
|
79
|
+
* and media segments.
|
|
80
|
+
*
|
|
81
|
+
* Calling this method resets all previous queues that were previously started
|
|
82
|
+
* on the same instance.
|
|
83
|
+
*
|
|
84
|
+
* @param {Object} content - The context of the Representation you want to
|
|
85
|
+
* load segments for.
|
|
86
|
+
* @param {boolean} hasInitSegment - Declare that an initialization segment
|
|
87
|
+
* will need to be downloaded.
|
|
88
|
+
*
|
|
89
|
+
* A `SegmentQueue` ALWAYS wait for the initialization segment to be
|
|
90
|
+
* loaded and parsed before parsing a media segment.
|
|
91
|
+
*
|
|
92
|
+
* In cases where no initialization segment exist, this would lead to the
|
|
93
|
+
* `SegmentQueue` waiting indefinitely for it.
|
|
94
|
+
*
|
|
95
|
+
* By setting that value to `false`, you anounce to the `SegmentQueue`
|
|
96
|
+
* that it should not wait for an initialization segment before parsing a
|
|
97
|
+
* media segment.
|
|
98
|
+
* @returns {Object} - `SharedReference` on which the queue of segment for
|
|
99
|
+
* that content can be communicated and updated. See type for more
|
|
100
|
+
* information.
|
|
105
101
|
*/
|
|
106
|
-
|
|
102
|
+
SegmentQueue.prototype.resetForContent = function (content, hasInitSegment) {
|
|
107
103
|
var _this = this;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
var _a;
|
|
105
|
+
(_a = this._currentContentInfo) === null || _a === void 0 ? void 0 : _a.currentCanceller.cancel();
|
|
106
|
+
var downloadQueue = new reference_1.default({
|
|
107
|
+
initSegment: null,
|
|
108
|
+
segmentQueue: [],
|
|
109
|
+
});
|
|
110
|
+
var currentCanceller = new task_canceller_1.default();
|
|
111
|
+
currentCanceller.signal.register(function () {
|
|
112
|
+
downloadQueue.finish();
|
|
113
|
+
});
|
|
114
|
+
var currentContentInfo = {
|
|
115
|
+
content: content,
|
|
116
|
+
downloadQueue: downloadQueue,
|
|
117
|
+
initSegmentInfoRef: hasInitSegment
|
|
118
|
+
? new reference_1.default(undefined)
|
|
119
|
+
: new reference_1.default(null),
|
|
120
|
+
currentCanceller: currentCanceller,
|
|
121
|
+
initSegmentRequest: null,
|
|
122
|
+
mediaSegmentRequest: null,
|
|
123
|
+
mediaSegmentAwaitingInitMetadata: null,
|
|
124
|
+
};
|
|
125
|
+
this._currentContentInfo = currentContentInfo;
|
|
112
126
|
// Listen for asked media segments
|
|
113
|
-
|
|
127
|
+
downloadQueue.onUpdate(function (queue) {
|
|
114
128
|
var segmentQueue = queue.segmentQueue;
|
|
115
129
|
if (segmentQueue.length > 0 &&
|
|
116
|
-
segmentQueue[0].segment.id ===
|
|
130
|
+
segmentQueue[0].segment.id ===
|
|
131
|
+
currentContentInfo.mediaSegmentAwaitingInitMetadata) {
|
|
117
132
|
// The most needed segment is still the same one, and there's no need to
|
|
118
133
|
// update its priority as the request already ended, just quit.
|
|
119
134
|
return;
|
|
120
135
|
}
|
|
121
|
-
var currentSegmentRequest =
|
|
136
|
+
var currentSegmentRequest = currentContentInfo.mediaSegmentRequest;
|
|
122
137
|
if (segmentQueue.length === 0) {
|
|
123
138
|
if (currentSegmentRequest === null) {
|
|
124
139
|
// There's nothing to load but there's already no request pending.
|
|
125
140
|
return;
|
|
126
141
|
}
|
|
127
|
-
log_1.default.debug("
|
|
128
|
-
_this._restartMediaSegmentDownloadingQueue();
|
|
142
|
+
log_1.default.debug("SQ: no more media segment to request. Cancelling queue.", content.adaptation.type);
|
|
143
|
+
_this._restartMediaSegmentDownloadingQueue(currentContentInfo);
|
|
129
144
|
return;
|
|
130
145
|
}
|
|
131
146
|
else if (currentSegmentRequest === null) {
|
|
132
147
|
// There's no request although there are needed segments: start requests
|
|
133
|
-
log_1.default.debug("
|
|
134
|
-
_this._restartMediaSegmentDownloadingQueue();
|
|
148
|
+
log_1.default.debug("SQ: Media segments now need to be requested. Starting queue.", content.adaptation.type, segmentQueue.length);
|
|
149
|
+
_this._restartMediaSegmentDownloadingQueue(currentContentInfo);
|
|
135
150
|
return;
|
|
136
151
|
}
|
|
137
152
|
else {
|
|
138
153
|
var nextItem = segmentQueue[0];
|
|
139
154
|
if (currentSegmentRequest.segment.id !== nextItem.segment.id) {
|
|
140
155
|
// The most important request if for another segment, request it
|
|
141
|
-
log_1.default.debug("
|
|
142
|
-
_this._restartMediaSegmentDownloadingQueue();
|
|
156
|
+
log_1.default.debug("SQ: Next media segment changed, cancelling previous", content.adaptation.type);
|
|
157
|
+
_this._restartMediaSegmentDownloadingQueue(currentContentInfo);
|
|
143
158
|
return;
|
|
144
159
|
}
|
|
145
160
|
if (currentSegmentRequest.priority !== nextItem.priority) {
|
|
146
161
|
// The priority of the most important request has changed, update it
|
|
147
|
-
log_1.default.debug("
|
|
162
|
+
log_1.default.debug("SQ: Priority of next media segment changed, updating", content.adaptation.type, currentSegmentRequest.priority, nextItem.priority);
|
|
148
163
|
_this._segmentFetcher.updatePriority(currentSegmentRequest.request, nextItem.priority);
|
|
149
164
|
}
|
|
150
165
|
return;
|
|
151
166
|
}
|
|
152
|
-
}, { emitCurrentValue: true, clearSignal:
|
|
167
|
+
}, { emitCurrentValue: true, clearSignal: currentCanceller.signal });
|
|
153
168
|
// Listen for asked init segment
|
|
154
|
-
|
|
169
|
+
downloadQueue.onUpdate(function (next) {
|
|
155
170
|
var _a;
|
|
156
|
-
var initSegmentRequest =
|
|
171
|
+
var initSegmentRequest = currentContentInfo.initSegmentRequest;
|
|
157
172
|
if (next.initSegment !== null && initSegmentRequest !== null) {
|
|
158
173
|
if (next.initSegment.priority !== initSegmentRequest.priority) {
|
|
159
174
|
_this._segmentFetcher.updatePriority(initSegmentRequest.request, next.initSegment.priority);
|
|
@@ -164,42 +179,49 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
164
179
|
return;
|
|
165
180
|
}
|
|
166
181
|
if (next.initSegment === null) {
|
|
167
|
-
log_1.default.debug("
|
|
182
|
+
log_1.default.debug("SQ: no more init segment to request. Cancelling queue.", content.adaptation.type);
|
|
168
183
|
}
|
|
169
|
-
_this._restartInitSegmentDownloadingQueue(next.initSegment);
|
|
170
|
-
}, { emitCurrentValue: true, clearSignal:
|
|
184
|
+
_this._restartInitSegmentDownloadingQueue(currentContentInfo, next.initSegment);
|
|
185
|
+
}, { emitCurrentValue: true, clearSignal: currentCanceller.signal });
|
|
186
|
+
return downloadQueue;
|
|
171
187
|
};
|
|
172
|
-
|
|
188
|
+
/**
|
|
189
|
+
* Stop the currently-active `SegmentQueue`.
|
|
190
|
+
*
|
|
191
|
+
* Do nothing if no queue is active.
|
|
192
|
+
*/
|
|
193
|
+
SegmentQueue.prototype.stop = function () {
|
|
173
194
|
var _a;
|
|
174
|
-
(_a = this.
|
|
175
|
-
this.
|
|
195
|
+
(_a = this._currentContentInfo) === null || _a === void 0 ? void 0 : _a.currentCanceller.cancel();
|
|
196
|
+
this._currentContentInfo = null;
|
|
176
197
|
};
|
|
177
198
|
/**
|
|
178
199
|
* Internal logic performing media segment requests.
|
|
179
200
|
*/
|
|
180
|
-
|
|
201
|
+
SegmentQueue.prototype._restartMediaSegmentDownloadingQueue = function (contentInfo) {
|
|
181
202
|
var _this = this;
|
|
182
|
-
if (
|
|
183
|
-
|
|
203
|
+
if (contentInfo.mediaSegmentRequest !== null) {
|
|
204
|
+
contentInfo.mediaSegmentRequest.canceller.cancel();
|
|
184
205
|
}
|
|
185
|
-
var
|
|
206
|
+
var downloadQueue = contentInfo.downloadQueue, content = contentInfo.content, initSegmentInfoRef = contentInfo.initSegmentInfoRef, currentCanceller = contentInfo.currentCanceller;
|
|
207
|
+
var segmentQueue = downloadQueue.getValue().segmentQueue;
|
|
186
208
|
var currentNeededSegment = segmentQueue[0];
|
|
187
209
|
var recursivelyRequestSegments = function (startingSegment) {
|
|
188
|
-
if (
|
|
189
|
-
|
|
210
|
+
if (currentCanceller !== null && currentCanceller.isUsed()) {
|
|
211
|
+
contentInfo.mediaSegmentRequest = null;
|
|
190
212
|
return;
|
|
191
213
|
}
|
|
192
214
|
if (startingSegment === undefined) {
|
|
193
|
-
|
|
215
|
+
contentInfo.mediaSegmentRequest = null;
|
|
194
216
|
_this.trigger("emptyQueue", null);
|
|
195
217
|
return;
|
|
196
218
|
}
|
|
197
219
|
var canceller = new task_canceller_1.default();
|
|
198
|
-
var unlinkCanceller =
|
|
220
|
+
var unlinkCanceller = currentCanceller === null
|
|
199
221
|
? noop_1.default
|
|
200
|
-
: canceller.linkToSignal(
|
|
222
|
+
: canceller.linkToSignal(currentCanceller.signal);
|
|
201
223
|
var segment = startingSegment.segment, priority = startingSegment.priority;
|
|
202
|
-
var context = (0, object_assign_1.default)({ segment: segment },
|
|
224
|
+
var context = (0, object_assign_1.default)({ segment: segment }, content);
|
|
203
225
|
/**
|
|
204
226
|
* If `true` , the current task has either errored, finished, or was
|
|
205
227
|
* cancelled.
|
|
@@ -211,12 +233,12 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
211
233
|
*/
|
|
212
234
|
var isWaitingOnInitSegment = false;
|
|
213
235
|
canceller.signal.register(function () {
|
|
214
|
-
|
|
236
|
+
contentInfo.mediaSegmentRequest = null;
|
|
215
237
|
if (isComplete) {
|
|
216
238
|
return;
|
|
217
239
|
}
|
|
218
|
-
if (
|
|
219
|
-
|
|
240
|
+
if (contentInfo.mediaSegmentAwaitingInitMetadata === segment.id) {
|
|
241
|
+
contentInfo.mediaSegmentAwaitingInitMetadata = null;
|
|
220
242
|
}
|
|
221
243
|
isComplete = true;
|
|
222
244
|
isWaitingOnInitSegment = false;
|
|
@@ -226,7 +248,7 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
226
248
|
_this.trigger("parsedMediaSegment", (0, object_assign_1.default)({}, parsed, { segment: segment }));
|
|
227
249
|
};
|
|
228
250
|
var continueToNextSegment = function () {
|
|
229
|
-
var lastQueue =
|
|
251
|
+
var lastQueue = downloadQueue.getValue().segmentQueue;
|
|
230
252
|
if (lastQueue.length === 0) {
|
|
231
253
|
isComplete = true;
|
|
232
254
|
_this.trigger("emptyQueue", null);
|
|
@@ -252,14 +274,14 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
252
274
|
* restarted later.
|
|
253
275
|
*/
|
|
254
276
|
beforeInterrupted: function () {
|
|
255
|
-
log_1.default.info("
|
|
277
|
+
log_1.default.info("SQ: segment request interrupted temporarly.", segment.id, segment.time);
|
|
256
278
|
},
|
|
257
279
|
/**
|
|
258
280
|
* Callback called when a decodable chunk of the segment is available.
|
|
259
281
|
* @param {Function} parse - Function allowing to parse the segment.
|
|
260
282
|
*/
|
|
261
283
|
onChunk: function (parse) {
|
|
262
|
-
var initTimescale =
|
|
284
|
+
var initTimescale = initSegmentInfoRef.getValue();
|
|
263
285
|
if (initTimescale !== undefined) {
|
|
264
286
|
emitChunk(parse(initTimescale !== null && initTimescale !== void 0 ? initTimescale : undefined));
|
|
265
287
|
}
|
|
@@ -269,7 +291,7 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
269
291
|
// but I found it globally clearer to segregate the two cases,
|
|
270
292
|
// especially to always have a meaningful `isWaitingOnInitSegment`
|
|
271
293
|
// boolean which is a very important variable.
|
|
272
|
-
|
|
294
|
+
initSegmentInfoRef.waitUntilDefined(function (actualTimescale) {
|
|
273
295
|
emitChunk(parse(actualTimescale !== null && actualTimescale !== void 0 ? actualTimescale : undefined));
|
|
274
296
|
}, { clearSignal: canceller.signal });
|
|
275
297
|
}
|
|
@@ -280,9 +302,9 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
280
302
|
_this.trigger("fullyLoadedSegment", segment);
|
|
281
303
|
}
|
|
282
304
|
else {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
305
|
+
contentInfo.mediaSegmentAwaitingInitMetadata = segment.id;
|
|
306
|
+
initSegmentInfoRef.waitUntilDefined(function () {
|
|
307
|
+
contentInfo.mediaSegmentAwaitingInitMetadata = null;
|
|
286
308
|
isWaitingOnInitSegment = false;
|
|
287
309
|
_this.trigger("fullyLoadedSegment", segment);
|
|
288
310
|
}, { clearSignal: canceller.signal });
|
|
@@ -294,9 +316,9 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
294
316
|
*/
|
|
295
317
|
beforeEnded: function () {
|
|
296
318
|
unlinkCanceller();
|
|
297
|
-
|
|
319
|
+
contentInfo.mediaSegmentRequest = null;
|
|
298
320
|
if (isWaitingOnInitSegment) {
|
|
299
|
-
|
|
321
|
+
initSegmentInfoRef.waitUntilDefined(continueToNextSegment, {
|
|
300
322
|
clearSignal: canceller.signal,
|
|
301
323
|
});
|
|
302
324
|
}
|
|
@@ -313,31 +335,30 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
313
335
|
_this.trigger("error", error);
|
|
314
336
|
}
|
|
315
337
|
});
|
|
316
|
-
|
|
338
|
+
contentInfo.mediaSegmentRequest = { segment: segment, priority: priority, request: request, canceller: canceller };
|
|
317
339
|
};
|
|
318
340
|
recursivelyRequestSegments(currentNeededSegment);
|
|
319
341
|
};
|
|
320
342
|
/**
|
|
321
343
|
* Internal logic performing initialization segment requests.
|
|
344
|
+
* @param {Object} contentInfo
|
|
322
345
|
* @param {Object} queuedInitSegment
|
|
323
346
|
*/
|
|
324
|
-
|
|
347
|
+
SegmentQueue.prototype._restartInitSegmentDownloadingQueue = function (contentInfo, queuedInitSegment) {
|
|
325
348
|
var _this = this;
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
if (this._initSegmentRequest !== null) {
|
|
330
|
-
this._initSegmentRequest.canceller.cancel();
|
|
349
|
+
var content = contentInfo.content, initSegmentInfoRef = contentInfo.initSegmentInfoRef;
|
|
350
|
+
if (contentInfo.initSegmentRequest !== null) {
|
|
351
|
+
contentInfo.initSegmentRequest.canceller.cancel();
|
|
331
352
|
}
|
|
332
353
|
if (queuedInitSegment === null) {
|
|
333
354
|
return;
|
|
334
355
|
}
|
|
335
356
|
var canceller = new task_canceller_1.default();
|
|
336
|
-
var unlinkCanceller =
|
|
357
|
+
var unlinkCanceller = contentInfo.currentCanceller === null
|
|
337
358
|
? noop_1.default
|
|
338
|
-
: canceller.linkToSignal(
|
|
359
|
+
: canceller.linkToSignal(contentInfo.currentCanceller.signal);
|
|
339
360
|
var segment = queuedInitSegment.segment, priority = queuedInitSegment.priority;
|
|
340
|
-
var context = (0, object_assign_1.default)({ segment: segment },
|
|
361
|
+
var context = (0, object_assign_1.default)({ segment: segment }, content);
|
|
341
362
|
/**
|
|
342
363
|
* If `true` , the current task has either errored, finished, or was
|
|
343
364
|
* cancelled.
|
|
@@ -348,11 +369,11 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
348
369
|
_this.trigger("requestRetry", { segment: segment, error: err });
|
|
349
370
|
},
|
|
350
371
|
beforeInterrupted: function () {
|
|
351
|
-
log_1.default.info("
|
|
372
|
+
log_1.default.info("SQ: init segment request interrupted temporarly.", segment.id);
|
|
352
373
|
},
|
|
353
374
|
beforeEnded: function () {
|
|
354
375
|
unlinkCanceller();
|
|
355
|
-
|
|
376
|
+
contentInfo.initSegmentRequest = null;
|
|
356
377
|
isComplete = true;
|
|
357
378
|
},
|
|
358
379
|
onChunk: function (parse) {
|
|
@@ -361,7 +382,7 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
361
382
|
(0, assert_1.default)(parsed.segmentType === "init", "Should have loaded an init segment.");
|
|
362
383
|
_this.trigger("parsedInitSegment", (0, object_assign_1.default)({}, parsed, { segment: segment }));
|
|
363
384
|
if (parsed.segmentType === "init") {
|
|
364
|
-
|
|
385
|
+
initSegmentInfoRef.setValue((_a = parsed.initTimescale) !== null && _a !== void 0 ? _a : null);
|
|
365
386
|
}
|
|
366
387
|
},
|
|
367
388
|
onAllChunksReceived: function () {
|
|
@@ -377,14 +398,14 @@ var DownloadingQueue = /** @class */ (function (_super) {
|
|
|
377
398
|
}
|
|
378
399
|
});
|
|
379
400
|
canceller.signal.register(function () {
|
|
380
|
-
|
|
401
|
+
contentInfo.initSegmentRequest = null;
|
|
381
402
|
if (isComplete) {
|
|
382
403
|
return;
|
|
383
404
|
}
|
|
384
405
|
isComplete = true;
|
|
385
406
|
});
|
|
386
|
-
|
|
407
|
+
contentInfo.initSegmentRequest = { segment: segment, priority: priority, request: request, canceller: canceller };
|
|
387
408
|
};
|
|
388
|
-
return
|
|
409
|
+
return SegmentQueue;
|
|
389
410
|
}(event_emitter_1.default));
|
|
390
|
-
exports.default =
|
|
411
|
+
exports.default = SegmentQueue;
|
|
@@ -17,22 +17,22 @@ import type { ITransportPipelines } from "../../../transports";
|
|
|
17
17
|
import type { CancellationSignal } from "../../../utils/task_canceller";
|
|
18
18
|
import type CmcdDataBuilder from "../../cmcd";
|
|
19
19
|
import type { IBufferType } from "../../segment_sinks";
|
|
20
|
-
import type { IPrioritizedSegmentFetcher } from "./prioritized_segment_fetcher";
|
|
21
20
|
import type { ISegmentFetcherLifecycleCallbacks } from "./segment_fetcher";
|
|
21
|
+
import SegmentQueue from "./segment_queue";
|
|
22
22
|
/**
|
|
23
23
|
* Interact with the transport pipelines to download segments with the right
|
|
24
24
|
* priority.
|
|
25
25
|
*
|
|
26
|
-
* @class
|
|
26
|
+
* @class SegmentQueueCreator
|
|
27
27
|
*/
|
|
28
|
-
export default class
|
|
28
|
+
export default class SegmentQueueCreator {
|
|
29
29
|
/**
|
|
30
30
|
* Transport pipelines of the currently choosen streaming protocol (e.g. DASH,
|
|
31
31
|
* Smooth etc.).
|
|
32
32
|
*/
|
|
33
33
|
private readonly _transport;
|
|
34
34
|
/**
|
|
35
|
-
* `TaskPrioritizer` linked to this
|
|
35
|
+
* `TaskPrioritizer` linked to this SegmentQueueCreator.
|
|
36
36
|
*
|
|
37
37
|
* Note: this is typed as `any` because segment loaders / parsers can use
|
|
38
38
|
* different types depending on the type of buffer. We could maybe be smarter
|
|
@@ -41,27 +41,32 @@ export default class SegmentFetcherCreator {
|
|
|
41
41
|
*/
|
|
42
42
|
private readonly _prioritizer;
|
|
43
43
|
/**
|
|
44
|
-
* Options used by the
|
|
44
|
+
* Options used by the SegmentQueueCreator, e.g. to allow configuration on
|
|
45
45
|
* segment retries (number of retries maximum, default delay and so on).
|
|
46
46
|
*/
|
|
47
47
|
private readonly _backoffOptions;
|
|
48
|
+
/** Class allowing to select a CDN when multiple are available for a given resource. */
|
|
48
49
|
private readonly _cdnPrioritizer;
|
|
49
50
|
private _cmcdDataBuilder;
|
|
50
51
|
/**
|
|
51
52
|
* @param {Object} transport
|
|
53
|
+
* @param {Object} options
|
|
54
|
+
* @param {Object} cancelSignal
|
|
52
55
|
*/
|
|
53
|
-
constructor(transport: ITransportPipelines, cmcdDataBuilder: CmcdDataBuilder | null, options:
|
|
56
|
+
constructor(transport: ITransportPipelines, cmcdDataBuilder: CmcdDataBuilder | null, options: ISegmentQueueCreatorBackoffOptions, cancelSignal: CancellationSignal);
|
|
54
57
|
/**
|
|
55
|
-
* Create a
|
|
58
|
+
* Create a `SegmentQueue`, allowing to easily perform segment requests.
|
|
56
59
|
* @param {string} bufferType - The type of buffer concerned (e.g. "audio",
|
|
57
60
|
* "video", etc.)
|
|
58
61
|
* @param {Object} eventListeners
|
|
59
|
-
* @returns {Object}
|
|
62
|
+
* @returns {Object} - `SegmentQueue`, which is an abstraction allowing to
|
|
63
|
+
* perform a queue of segment requests for a given media type (here defined by
|
|
64
|
+
* `bufferType`) with associated priorities.
|
|
60
65
|
*/
|
|
61
|
-
|
|
66
|
+
createSegmentQueue(bufferType: IBufferType, eventListeners: ISegmentFetcherLifecycleCallbacks): SegmentQueue<unknown>;
|
|
62
67
|
}
|
|
63
|
-
/** Options used by the `
|
|
64
|
-
export interface
|
|
68
|
+
/** Options used by the `SegmentQueueCreator`. */
|
|
69
|
+
export interface ISegmentQueueCreatorBackoffOptions {
|
|
65
70
|
/**
|
|
66
71
|
* Whether the content is played in a low-latency mode.
|
|
67
72
|
* This has an impact on default backoff delays.
|
|
@@ -76,6 +81,14 @@ export interface ISegmentFetcherCreatorBackoffOptions {
|
|
|
76
81
|
* `undefined` will lead to a default, large, timeout being used.
|
|
77
82
|
*/
|
|
78
83
|
requestTimeout: number | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Timeout for just the "connection" part of the request, before data is
|
|
86
|
+
* actually being transferred.
|
|
87
|
+
*
|
|
88
|
+
* Setting a lower `connectionTimeout` than a `requestTimeout` allows to
|
|
89
|
+
* fail faster without having to take into account a potentially low
|
|
90
|
+
* bandwidth.
|
|
91
|
+
*/
|
|
79
92
|
connectionTimeout: number | undefined;
|
|
80
93
|
}
|
|
81
|
-
//# sourceMappingURL=
|
|
94
|
+
//# sourceMappingURL=segment_queue_creator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segment_queue_creator.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/segment/segment_queue_creator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAoB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,eAAe,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAG3C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IAErE,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,gBAAgB,CAAyB;IAEjD;;;;OAIG;gBAED,SAAS,EAAE,mBAAmB,EAC9B,eAAe,EAAE,eAAe,GAAG,IAAI,EACvC,OAAO,EAAE,kCAAkC,EAC3C,YAAY,EAAE,kBAAkB;IAiBlC;;;;;;;;OAQG;IACI,kBAAkB,CACvB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,iCAAiC,GAChD,YAAY,CAAC,OAAO,CAAC;CAmBzB;AAED,iDAAiD;AACjD,MAAM,WAAW,kCAAkC;IACjD;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;;;;;OAOG;IACH,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC"}
|
package/dist/commonjs/core/fetchers/segment/{segment_fetcher_creator.js → segment_queue_creator.js}
RENAMED
|
@@ -19,18 +19,21 @@ var config_1 = require("../../../config");
|
|
|
19
19
|
var cdn_prioritizer_1 = require("../cdn_prioritizer");
|
|
20
20
|
var prioritized_segment_fetcher_1 = require("./prioritized_segment_fetcher");
|
|
21
21
|
var segment_fetcher_1 = require("./segment_fetcher");
|
|
22
|
+
var segment_queue_1 = require("./segment_queue");
|
|
22
23
|
var task_prioritizer_1 = require("./task_prioritizer");
|
|
23
24
|
/**
|
|
24
25
|
* Interact with the transport pipelines to download segments with the right
|
|
25
26
|
* priority.
|
|
26
27
|
*
|
|
27
|
-
* @class
|
|
28
|
+
* @class SegmentQueueCreator
|
|
28
29
|
*/
|
|
29
|
-
var
|
|
30
|
+
var SegmentQueueCreator = /** @class */ (function () {
|
|
30
31
|
/**
|
|
31
32
|
* @param {Object} transport
|
|
33
|
+
* @param {Object} options
|
|
34
|
+
* @param {Object} cancelSignal
|
|
32
35
|
*/
|
|
33
|
-
function
|
|
36
|
+
function SegmentQueueCreator(transport, cmcdDataBuilder, options, cancelSignal) {
|
|
34
37
|
var cdnPrioritizer = new cdn_prioritizer_1.default(cancelSignal);
|
|
35
38
|
var _a = config_1.default.getCurrent(), MIN_CANCELABLE_PRIORITY = _a.MIN_CANCELABLE_PRIORITY, MAX_HIGH_PRIORITY_LEVEL = _a.MAX_HIGH_PRIORITY_LEVEL;
|
|
36
39
|
this._transport = transport;
|
|
@@ -45,13 +48,15 @@ var SegmentFetcherCreator = /** @class */ (function () {
|
|
|
45
48
|
this._cmcdDataBuilder = cmcdDataBuilder;
|
|
46
49
|
}
|
|
47
50
|
/**
|
|
48
|
-
* Create a
|
|
51
|
+
* Create a `SegmentQueue`, allowing to easily perform segment requests.
|
|
49
52
|
* @param {string} bufferType - The type of buffer concerned (e.g. "audio",
|
|
50
53
|
* "video", etc.)
|
|
51
54
|
* @param {Object} eventListeners
|
|
52
|
-
* @returns {Object}
|
|
55
|
+
* @returns {Object} - `SegmentQueue`, which is an abstraction allowing to
|
|
56
|
+
* perform a queue of segment requests for a given media type (here defined by
|
|
57
|
+
* `bufferType`) with associated priorities.
|
|
53
58
|
*/
|
|
54
|
-
|
|
59
|
+
SegmentQueueCreator.prototype.createSegmentQueue = function (bufferType, eventListeners) {
|
|
55
60
|
var requestOptions = (0, segment_fetcher_1.getSegmentFetcherRequestOptions)(this._backoffOptions);
|
|
56
61
|
var pipelines = this._transport[bufferType];
|
|
57
62
|
// Types are very complicated here as they are per-type of buffer.
|
|
@@ -63,8 +68,9 @@ var SegmentFetcherCreator = /** @class */ (function () {
|
|
|
63
68
|
eventListeners: eventListeners,
|
|
64
69
|
requestOptions: requestOptions,
|
|
65
70
|
});
|
|
66
|
-
|
|
71
|
+
var prioritizedSegmentFetcher = (0, prioritized_segment_fetcher_1.default)(this._prioritizer, segmentFetcher);
|
|
72
|
+
return new segment_queue_1.default(prioritizedSegmentFetcher);
|
|
67
73
|
};
|
|
68
|
-
return
|
|
74
|
+
return SegmentQueueCreator;
|
|
69
75
|
}());
|
|
70
|
-
exports.default =
|
|
76
|
+
exports.default = SegmentQueueCreator;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import type { CancellationSignal } from "../../../utils/task_canceller";
|
|
2
|
+
/**
|
|
3
|
+
* Utilitary class which allows to perform multiple tasks at once each with an
|
|
4
|
+
* associated priority.
|
|
5
|
+
*
|
|
6
|
+
* This class will then schedule the given tasks in the right order based on the
|
|
7
|
+
* priorities.
|
|
8
|
+
*
|
|
9
|
+
* @class TaskPrioritizer
|
|
10
|
+
*/
|
|
2
11
|
export default class TaskPrioritizer<T> {
|
|
3
12
|
/**
|
|
4
13
|
* Priority of the most prioritary task currently running.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_prioritizer.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/segment/task_prioritizer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,MAAM,CAAC,OAAO,OAAO,eAAe,CAAC,CAAC;IACpC;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAA6B;IAClD,gCAAgC;IAChC,OAAO,CAAC,aAAa,CAA6B;IAClD,qCAAqC;IACrC,OAAO,CAAC,cAAc,CAA4B;IAElD;;OAEG;gBACS,EAAE,aAAa,EAAE,EAAE,mBAAmB;IAclD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,MAAM,CACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,yBAAyB,EACpC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,CAAC,CAAC;IAoFb,OAAO,CAAC,QAAQ;IA2BhB;;;;OAIG;IACI,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwElE;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"task_prioritizer.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/segment/task_prioritizer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe,CAAC,CAAC;IACpC;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,2EAA2E;IAC3E,OAAO,CAAC,aAAa,CAA6B;IAClD,gCAAgC;IAChC,OAAO,CAAC,aAAa,CAA6B;IAClD,qCAAqC;IACrC,OAAO,CAAC,cAAc,CAA4B;IAElD;;OAEG;gBACS,EAAE,aAAa,EAAE,EAAE,mBAAmB;IAclD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,MAAM,CACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,yBAAyB,EACpC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,CAAC,CAAC;IAoFb,OAAO,CAAC,QAAQ;IA2BhB;;;;OAIG;IACI,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwElE;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAalC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAUnC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;CAMpC;AAkBD;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAwBhF,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,aAAa,EAAE,yBAAyB,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,IAAI,IAAI,CAAC;CACrB"}
|