rx-player 4.0.0-dev.2023120600 → 4.0.0-dev.2023121900
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 +178 -2
- package/README.md +2 -33
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_text_track.d.ts +3 -1
- package/dist/_esm5.processed/compat/add_text_track.js +7 -4
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +7 -0
- package/dist/_esm5.processed/compat/event_listeners.d.ts +15 -2
- package/dist/_esm5.processed/compat/event_listeners.js +37 -2
- package/dist/_esm5.processed/compat/fullscreen.d.ts +32 -0
- package/dist/_esm5.processed/compat/fullscreen.js +78 -0
- package/dist/_esm5.processed/compat/index.d.ts +3 -1
- package/dist/_esm5.processed/compat/index.js +3 -1
- package/dist/_esm5.processed/compat/is_offline.d.ts +39 -0
- package/dist/_esm5.processed/compat/is_offline.js +43 -0
- package/dist/_esm5.processed/config.d.ts +21 -9
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +58 -0
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +54 -14
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +8 -2
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +11 -2
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +46 -17
- 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 +35 -14
- package/dist/_esm5.processed/core/api/option_utils.js +230 -47
- package/dist/_esm5.processed/core/api/public_api.d.ts +266 -92
- package/dist/_esm5.processed/core/api/public_api.js +802 -444
- package/dist/_esm5.processed/core/api/{track_management/media_element_tracks_store.d.ts → tracks_management/media_element_track_choice_manager.d.ts} +75 -15
- package/dist/_esm5.processed/core/api/{track_management/media_element_tracks_store.js → tracks_management/media_element_track_choice_manager.js} +193 -74
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +258 -0
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +989 -0
- package/dist/_esm5.processed/core/api/utils.d.ts +0 -1
- package/dist/_esm5.processed/core/api/utils.js +11 -28
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +3 -3
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +71 -83
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +5 -6
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +72 -10
- 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 +4 -6
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +3 -1
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +26 -7
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +9 -3
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +9 -16
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +3 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +6 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +41 -4
- package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +8 -1
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +5 -2
- package/dist/_esm5.processed/core/init/types.d.ts +15 -5
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +9 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +75 -0
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +133 -0
- package/dist/_esm5.processed/core/{api/track_management → segment_buffers/implementations/image}/index.d.ts +2 -3
- package/dist/_esm5.processed/core/{api/track_management → segment_buffers/implementations/image}/index.js +2 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +4 -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 +1 -2
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +2 -3
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +0 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +25 -8
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +19 -10
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +1 -0
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +16 -2
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +15 -0
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +93 -183
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +13 -27
- package/dist/_esm5.processed/core/stream/index.d.ts +3 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +0 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +7 -5
- package/dist/_esm5.processed/core/stream/period/period_stream.js +12 -13
- package/dist/_esm5.processed/core/stream/period/types.d.ts +14 -5
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +4 -2
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +46 -10
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +23 -29
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +1 -11
- package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +1 -1
- package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +1 -1
- package/dist/_esm5.processed/default_config.d.ts +98 -35
- package/dist/_esm5.processed/default_config.js +113 -36
- package/dist/_esm5.processed/errors/custom_loader_error.d.ts +3 -1
- package/dist/_esm5.processed/errors/custom_loader_error.js +3 -1
- package/dist/_esm5.processed/errors/media_error.js +2 -2
- package/dist/_esm5.processed/errors/network_error.d.ts +1 -0
- package/dist/_esm5.processed/errors/network_error.js +1 -0
- package/dist/_esm5.processed/errors/request_error.d.ts +3 -2
- package/dist/_esm5.processed/errors/request_error.js +5 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -3
- package/dist/_esm5.processed/features/features_object.js +2 -0
- package/dist/_esm5.processed/{transports/smooth/is_mp4_embedded_track.js → features/list/bif_parser.d.ts} +6 -7
- package/dist/_esm5.processed/features/list/bif_parser.js +27 -0
- package/dist/_esm5.processed/features/list/directfile.js +5 -2
- package/dist/_esm5.processed/features/list/image_buffer.d.ts +23 -0
- package/dist/_esm5.processed/features/list/image_buffer.js +25 -0
- package/dist/_esm5.processed/features/list/index.d.ts +2 -0
- package/dist/_esm5.processed/features/list/index.js +2 -0
- package/dist/_esm5.processed/features/types.d.ts +27 -3
- package/dist/_esm5.processed/manifest/adaptation.d.ts +11 -9
- package/dist/_esm5.processed/manifest/adaptation.js +30 -41
- package/dist/_esm5.processed/manifest/index.d.ts +4 -3
- package/dist/_esm5.processed/manifest/manifest.d.ts +54 -5
- package/dist/_esm5.processed/manifest/manifest.js +110 -5
- package/dist/_esm5.processed/manifest/period.d.ts +5 -4
- package/dist/_esm5.processed/manifest/representation.d.ts +5 -10
- package/dist/_esm5.processed/manifest/representation.js +5 -15
- package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +0 -2
- package/dist/_esm5.processed/manifest/representation_index/static.js +0 -6
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +21 -42
- package/dist/_esm5.processed/manifest/types.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +31 -17
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +19 -26
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +1 -7
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +6 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +8 -11
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +0 -6
- 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 +6 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +5 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +2 -0
- 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 +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +6 -10
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +1 -10
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +2 -18
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +6 -3
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +0 -6
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +3 -12
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +2 -11
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +1 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +17 -11
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +83 -21
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +125 -53
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +6 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +3 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +2 -1
- package/dist/_esm5.processed/public_types.d.ts +310 -396
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +4 -5
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +4 -5
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +38 -0
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +129 -0
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +3 -2
- package/dist/_esm5.processed/transports/dash/pipelines.js +4 -1
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +20 -26
- package/dist/_esm5.processed/transports/dash/segment_parser.js +24 -19
- package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
- package/dist/_esm5.processed/transports/dash/text_parser.js +33 -28
- package/dist/_esm5.processed/transports/local/pipelines.js +10 -1
- 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 +52 -34
- package/dist/_esm5.processed/transports/smooth/pipelines.js +190 -33
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +22 -28
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +26 -1
- package/dist/_esm5.processed/transports/smooth/utils.js +55 -1
- package/dist/_esm5.processed/transports/types.d.ts +89 -94
- 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 +7 -5
- package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +12 -8
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +21 -19
- package/dist/_esm5.processed/utils/array_includes.d.ts +1 -2
- package/dist/_esm5.processed/utils/array_includes.js +28 -30
- package/dist/_esm5.processed/{transports/smooth/is_mp4_embedded_track.d.ts → utils/list_to_map.d.ts} +5 -5
- package/dist/_esm5.processed/utils/list_to_map.js +28 -0
- package/dist/_esm5.processed/utils/request/xhr.js +5 -5
- package/dist/_esm5.processed/utils/simple_set.d.ts +51 -0
- package/dist/_esm5.processed/utils/simple_set.js +57 -0
- package/dist/_esm5.processed/utils/uniq.d.ts +36 -0
- package/dist/_esm5.processed/utils/uniq.js +43 -0
- package/dist/commonjs/config.d.ts +1 -1
- package/dist/commonjs/core/adaptive/adaptive_representation_selector.d.ts +2 -19
- package/dist/commonjs/core/adaptive/adaptive_representation_selector.js +2 -2
- package/dist/commonjs/core/adaptive/network_analyzer.js +3 -3
- package/dist/commonjs/core/api/index.d.ts +1 -1
- package/dist/commonjs/core/api/playback_observer.d.ts +128 -8
- package/dist/commonjs/core/api/playback_observer.js +217 -64
- package/dist/commonjs/core/api/public_api.js +9 -9
- package/dist/commonjs/core/api/utils.js +1 -1
- package/dist/commonjs/core/decrypt/get_media_keys.js +2 -6
- package/dist/commonjs/core/init/directfile_content_initializer.js +5 -1
- package/dist/commonjs/core/init/media_source_content_initializer.js +28 -14
- package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +1 -2
- package/dist/commonjs/core/init/utils/create_stream_playback_observer.d.ts +1 -5
- package/dist/commonjs/core/init/utils/create_stream_playback_observer.js +16 -14
- package/dist/commonjs/core/init/utils/initial_seek_and_play.d.ts +9 -11
- package/dist/commonjs/core/init/utils/initial_seek_and_play.js +121 -91
- package/dist/commonjs/core/init/utils/rebuffering_controller.js +27 -70
- package/dist/commonjs/core/init/utils/stream_events_emitter/stream_events_emitter.js +4 -2
- package/dist/commonjs/core/segment_buffers/garbage_collector.js +1 -2
- package/dist/commonjs/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +9 -2
- package/dist/commonjs/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
- package/dist/commonjs/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +1 -1
- package/dist/commonjs/core/segment_buffers/index.d.ts +2 -2
- package/dist/commonjs/core/segment_buffers/inventory/index.d.ts +2 -2
- package/dist/commonjs/core/segment_buffers/inventory/segment_inventory.d.ts +25 -8
- package/dist/commonjs/core/segment_buffers/inventory/segment_inventory.js +19 -10
- package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.d.ts +2 -2
- package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.js +16 -9
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +14 -18
- package/dist/commonjs/core/stream/period/period_stream.js +5 -8
- package/dist/commonjs/core/stream/period/types.d.ts +2 -3
- package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +4 -5
- package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.js +17 -13
- package/dist/commonjs/core/stream/representation/representation_stream.js +3 -4
- package/dist/commonjs/core/stream/representation/types.d.ts +2 -2
- package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.js +11 -12
- package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +1 -1
- package/dist/commonjs/default_config.d.ts +7 -16
- package/dist/commonjs/default_config.js +16 -16
- package/dist/commonjs/manifest/adaptation.js +2 -1
- package/dist/commonjs/parsers/texttracks/ttml/html/apply_line_height.js +2 -1
- package/dist/commonjs/public_types.d.ts +29 -2
- package/dist/es2017/config.d.ts +1 -1
- package/dist/es2017/core/adaptive/adaptive_representation_selector.d.ts +2 -19
- package/dist/es2017/core/adaptive/adaptive_representation_selector.js +2 -2
- package/dist/es2017/core/adaptive/network_analyzer.js +3 -3
- package/dist/es2017/core/api/index.d.ts +1 -1
- package/dist/es2017/core/api/playback_observer.d.ts +128 -8
- package/dist/es2017/core/api/playback_observer.js +217 -66
- package/dist/es2017/core/api/public_api.js +9 -9
- package/dist/es2017/core/api/utils.js +1 -1
- package/dist/es2017/core/decrypt/get_media_keys.js +2 -6
- package/dist/es2017/core/init/directfile_content_initializer.js +7 -1
- package/dist/es2017/core/init/media_source_content_initializer.js +30 -16
- package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +1 -2
- package/dist/es2017/core/init/utils/create_stream_playback_observer.d.ts +1 -5
- package/dist/es2017/core/init/utils/create_stream_playback_observer.js +16 -14
- package/dist/es2017/core/init/utils/initial_seek_and_play.d.ts +9 -11
- package/dist/es2017/core/init/utils/initial_seek_and_play.js +120 -91
- package/dist/es2017/core/init/utils/rebuffering_controller.js +27 -70
- package/dist/es2017/core/init/utils/stream_events_emitter/stream_events_emitter.js +4 -2
- package/dist/es2017/core/segment_buffers/garbage_collector.js +1 -2
- package/dist/es2017/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +9 -2
- package/dist/es2017/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
- package/dist/es2017/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +1 -1
- package/dist/es2017/core/segment_buffers/index.d.ts +2 -2
- package/dist/es2017/core/segment_buffers/inventory/index.d.ts +2 -2
- package/dist/es2017/core/segment_buffers/inventory/segment_inventory.d.ts +25 -8
- package/dist/es2017/core/segment_buffers/inventory/segment_inventory.js +19 -10
- package/dist/es2017/core/stream/adaptation/get_representations_switch_strategy.d.ts +2 -2
- package/dist/es2017/core/stream/adaptation/get_representations_switch_strategy.js +16 -9
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +16 -18
- package/dist/es2017/core/stream/period/period_stream.js +4 -7
- package/dist/es2017/core/stream/period/types.d.ts +2 -3
- package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +4 -5
- package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.js +17 -13
- package/dist/es2017/core/stream/representation/representation_stream.js +3 -4
- package/dist/es2017/core/stream/representation/types.d.ts +2 -2
- package/dist/es2017/core/stream/representation/utils/append_segment_to_buffer.js +1 -2
- package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +1 -1
- package/dist/es2017/default_config.d.ts +7 -16
- package/dist/es2017/default_config.js +16 -16
- package/dist/es2017/manifest/adaptation.js +2 -1
- package/dist/es2017/parsers/texttracks/ttml/html/apply_line_height.js +2 -1
- package/dist/es2017/public_types.d.ts +29 -2
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +614 -438
- package/dist/rx-player.min.js +1 -1
- package/package.json +5 -1
- package/scripts/canal-release.patch +78 -0
- package/scripts/make-dev-releases +65 -0
- package/scripts/update-version +5 -0
- package/sonar-project.properties +1 -1
- package/src/core/adaptive/adaptive_representation_selector.ts +4 -21
- package/src/core/adaptive/network_analyzer.ts +3 -3
- package/src/core/api/index.ts +1 -0
- package/src/core/api/playback_observer.ts +327 -107
- package/src/core/api/public_api.ts +9 -9
- package/src/core/api/utils.ts +3 -1
- package/src/core/decrypt/get_media_keys.ts +2 -8
- package/src/core/init/directfile_content_initializer.ts +8 -8
- package/src/core/init/media_source_content_initializer.ts +27 -20
- package/src/core/init/utils/content_time_boundaries_observer.ts +1 -1
- package/src/core/init/utils/create_stream_playback_observer.ts +19 -20
- package/src/core/init/utils/initial_seek_and_play.ts +140 -108
- package/src/core/init/utils/rebuffering_controller.ts +32 -77
- package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +5 -2
- package/src/core/segment_buffers/garbage_collector.ts +1 -1
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +10 -2
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +1 -1
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +1 -1
- package/src/core/segment_buffers/index.ts +2 -0
- package/src/core/segment_buffers/inventory/index.ts +2 -0
- package/src/core/segment_buffers/inventory/segment_inventory.ts +49 -17
- package/src/core/stream/adaptation/get_representations_switch_strategy.ts +21 -12
- package/src/core/stream/orchestrator/stream_orchestrator.ts +14 -19
- package/src/core/stream/period/period_stream.ts +7 -8
- package/src/core/stream/period/types.ts +2 -3
- package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +21 -15
- package/src/core/stream/representation/representation_stream.ts +3 -5
- package/src/core/stream/representation/types.ts +2 -2
- package/src/core/stream/representation/utils/append_segment_to_buffer.ts +1 -1
- package/src/core/stream/representation/utils/get_buffer_status.ts +2 -1
- package/src/default_config.ts +17 -17
- package/src/manifest/adaptation.ts +2 -1
- package/src/parsers/texttracks/ttml/html/apply_line_height.ts +3 -1
- package/src/public_types.ts +29 -2
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +0 -84
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +0 -158
- package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +0 -406
- package/dist/_esm5.processed/core/api/track_management/tracks_store.js +0 -932
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +0 -33
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +0 -49
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +0 -39
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +0 -133
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +0 -119
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +0 -159
|
@@ -1,406 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import Manifest, { Adaptation, Period } from "../../../manifest";
|
|
17
|
-
import { IAudioRepresentationsSwitchingMode, IAudioTrack, IAudioTrackSwitchingMode, ITrackUpdateEventPayload, IAvailableAudioTrack, IAvailableTextTrack, IAvailableVideoTrack, IBrokenRepresentationsLockContext, IPeriod, ITextTrack, IVideoRepresentationsSwitchingMode, IVideoTrack, IVideoTrackSwitchingMode } from "../../../public_types";
|
|
18
|
-
import EventEmitter from "../../../utils/event_emitter";
|
|
19
|
-
import SharedReference from "../../../utils/reference";
|
|
20
|
-
import { IAdaptationChoice, IRepresentationsChoice } from "../../stream";
|
|
21
|
-
import TrackDispatcher from "./track_dispatcher";
|
|
22
|
-
/**
|
|
23
|
-
* Class helping with the management of the audio, video and text tracks and
|
|
24
|
-
* qualities.
|
|
25
|
-
*
|
|
26
|
-
* The `TracksStore` allows to choose a track and qualities for different types
|
|
27
|
-
* of media through a simpler API.
|
|
28
|
-
*
|
|
29
|
-
* @class TracksStore
|
|
30
|
-
*/
|
|
31
|
-
export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
|
|
32
|
-
/**
|
|
33
|
-
* Store track selection information, per Period.
|
|
34
|
-
* Sorted by Period's start time ascending
|
|
35
|
-
*/
|
|
36
|
-
private _storedPeriodInfo;
|
|
37
|
-
private _isDisposed;
|
|
38
|
-
/**
|
|
39
|
-
* Period information that was before in `_storedPeriodInfo` but has since
|
|
40
|
-
* been removed is added to the `_cachedPeriodInfo` cache as a weak reference.
|
|
41
|
-
*
|
|
42
|
-
* This allows to still retrieve old track information for Periods which are
|
|
43
|
-
* for example not in the Manifest anymore as long as the same Period's
|
|
44
|
-
* reference is still kept.
|
|
45
|
-
*/
|
|
46
|
-
private _cachedPeriodInfo;
|
|
47
|
-
/** Tells if trick mode has been enabled by the RxPlayer user */
|
|
48
|
-
private _isTrickModeTrackEnabled;
|
|
49
|
-
private _defaultAudioTrackSwitchingMode;
|
|
50
|
-
constructor(args: {
|
|
51
|
-
preferTrickModeTracks: boolean;
|
|
52
|
-
defaultAudioTrackSwitchingMode: IAudioTrackSwitchingMode | undefined;
|
|
53
|
-
});
|
|
54
|
-
/**
|
|
55
|
-
* Return Array of Period information, to allow an outside application to
|
|
56
|
-
* modify the track of any Period.
|
|
57
|
-
* @returns {Array.<Object>}
|
|
58
|
-
*/
|
|
59
|
-
getAvailablePeriods(): IPeriod[];
|
|
60
|
-
/**
|
|
61
|
-
* Update the list of Periods handled by the TracksStore and make a
|
|
62
|
-
* track choice decision for each of them.
|
|
63
|
-
* @param {Object} manifest - The new Manifest object
|
|
64
|
-
*/
|
|
65
|
-
updatePeriodList(manifest: Manifest): void;
|
|
66
|
-
/**
|
|
67
|
-
* Add shared reference to choose Adaptation for new "audio", "video" or
|
|
68
|
-
* "text" Period.
|
|
69
|
-
*
|
|
70
|
-
* Note that such reference has to be removed through `removeTrackReference`
|
|
71
|
-
* so ressources can be freed.
|
|
72
|
-
* @param {string} bufferType - The concerned buffer type
|
|
73
|
-
* @param {Object} manifest
|
|
74
|
-
* @param {Period} period - The concerned Period.
|
|
75
|
-
* @param {Object} adaptationRef - A reference through which
|
|
76
|
-
* the choice will be given.
|
|
77
|
-
*/
|
|
78
|
-
addTrackReference(bufferType: "audio" | "text" | "video", manifest: Manifest, period: Period, adaptationRef: SharedReference<IAdaptationChoice | null | undefined>): void;
|
|
79
|
-
/**
|
|
80
|
-
* Remove shared reference to choose an "audio", "video" or "text" Adaptation
|
|
81
|
-
* for a Period.
|
|
82
|
-
* @param {string} bufferType - The concerned buffer type
|
|
83
|
-
* @param {Period} period - The concerned Period.
|
|
84
|
-
*/
|
|
85
|
-
removeTrackReference(bufferType: "audio" | "text" | "video", period: Period): void;
|
|
86
|
-
/**
|
|
87
|
-
* Allows to recuperate a "Period Object" - used in get/set methods of the
|
|
88
|
-
* `TracksStore` - by giving the Period itself.
|
|
89
|
-
*
|
|
90
|
-
* This method should be preferred when possible over `getPeriodObjectFromId`
|
|
91
|
-
* because it is able to fallback on an internal cache in case the
|
|
92
|
-
* corresponding Period is not stored anymore.
|
|
93
|
-
* This for example could happen when a Period has been removed from the
|
|
94
|
-
* Manifest yet may still be needed (e.g. because its linked segments might
|
|
95
|
-
* still live in the buffers).
|
|
96
|
-
*
|
|
97
|
-
* Note however that this cache-retrieval logic is based on a Map whose key
|
|
98
|
-
* is the Period's JavaScript reference. As such, the cache won't be used if
|
|
99
|
-
* `Period` corresponds to a copy of the original `Period` object.
|
|
100
|
-
*
|
|
101
|
-
* @param {Object} period
|
|
102
|
-
* @returns {Object}
|
|
103
|
-
*/
|
|
104
|
-
getPeriodObjectFromPeriod(period: Period): ITMPeriodObject | undefined;
|
|
105
|
-
/**
|
|
106
|
-
* Allows to recuperate a "Period Object" - used in get/set methods of the
|
|
107
|
-
* `TracksStore` - by giving the Period's id.
|
|
108
|
-
*
|
|
109
|
-
* Note that unlike `getPeriodObjectFromPeriod` this method is only going to look
|
|
110
|
-
* into currently stored Period and as such old Periods not in the Manifest
|
|
111
|
-
* anymore might not be retrievable.
|
|
112
|
-
* If you want to retrieve Period objects linked to such Period, you might
|
|
113
|
-
* prefer to use `getPeriodObjectFromPeriod` (which necessitates the original
|
|
114
|
-
* Period object).
|
|
115
|
-
*
|
|
116
|
-
* @param {string} periodId - The concerned Period's id
|
|
117
|
-
* @returns {Object}
|
|
118
|
-
*/
|
|
119
|
-
getPeriodObjectFromId(periodId: string): ITMPeriodObject | undefined;
|
|
120
|
-
disableVideoTrickModeTracks(): void;
|
|
121
|
-
enableVideoTrickModeTracks(): void;
|
|
122
|
-
/**
|
|
123
|
-
* Reset the TracksStore's Period objects:
|
|
124
|
-
* - All Period which are not in the manifest currently will be removed.
|
|
125
|
-
* - All References used to communicate the wanted track will be removed.
|
|
126
|
-
*
|
|
127
|
-
* You might want to call this API when restarting playback.
|
|
128
|
-
*/
|
|
129
|
-
resetPeriodObjects(): void;
|
|
130
|
-
/**
|
|
131
|
-
* @returns {boolean}
|
|
132
|
-
*/
|
|
133
|
-
isTrickModeEnabled(): boolean;
|
|
134
|
-
/**
|
|
135
|
-
* Set audio track based on the ID of its Adaptation for a given added Period.
|
|
136
|
-
* @param {Object} periodObj - The concerned Period's object.
|
|
137
|
-
* @param {string} wantedId - adaptation id of the wanted track.
|
|
138
|
-
* @param {string} switchingMode - Behavior when replacing the track by
|
|
139
|
-
* another.
|
|
140
|
-
* @param {Object|null} reprsToLock - Audio Representations that should be
|
|
141
|
-
* locked after switchingMode to that track.
|
|
142
|
-
* `null` if no Audio Representation should be locked.
|
|
143
|
-
*/
|
|
144
|
-
setAudioTrack(periodObj: ITMPeriodObject, wantedId: string, switchingMode: IAudioTrackSwitchingMode | undefined, reprsToLock: string[] | null): void;
|
|
145
|
-
/**
|
|
146
|
-
* Set text track based on the ID of its Adaptation for a given added Period.
|
|
147
|
-
* @param {Object} periodObj - The concerned Period's object.
|
|
148
|
-
* @param {string} wantedId - adaptation id of the wanted track.
|
|
149
|
-
*/
|
|
150
|
-
setTextTrack(periodObj: ITMPeriodObject, wantedId: string): void;
|
|
151
|
-
/**
|
|
152
|
-
* Set audio track based on the ID of its Adaptation for a given added Period.
|
|
153
|
-
* @param {Object} periodObj - The concerned Period's object.
|
|
154
|
-
* @param {string} wantedId - adaptation id of the wanted track.
|
|
155
|
-
* @param {string} switchingMode - Behavior when replacing the track by
|
|
156
|
-
* another.
|
|
157
|
-
* @param {Array.<string>|null} reprsToLock - Audio Representations that should be
|
|
158
|
-
* locked after switchingMode to that track.
|
|
159
|
-
* `null` if no Audio Representation should be locked.
|
|
160
|
-
*/
|
|
161
|
-
private _setAudioOrTextTrack;
|
|
162
|
-
/**
|
|
163
|
-
* Set video track based on the ID of its Adaptation for a given added Period.
|
|
164
|
-
* @param {Object} periodObj - The concerned Period's object.
|
|
165
|
-
* @param {string} wantedId - adaptation id of the wanted track.
|
|
166
|
-
* @param {string} switchingMode - Behavior when replacing the track by
|
|
167
|
-
* another.
|
|
168
|
-
* @param {Array.<string>|null} reprsToLock - Video Representations that should be
|
|
169
|
-
* locked after switchingMode to that track.
|
|
170
|
-
* `null` if no Video Representation should be locked.
|
|
171
|
-
*/
|
|
172
|
-
setVideoTrack(periodObj: ITMPeriodObject, wantedId: string, switchingMode: IVideoTrackSwitchingMode | undefined, reprsToLock: string[] | null): void;
|
|
173
|
-
/**
|
|
174
|
-
* Disable the current text track for a given period.
|
|
175
|
-
*
|
|
176
|
-
* @param {Object} periodObj - The concerned Period's object
|
|
177
|
-
* @param {string} bufferType - The type of track to disable.
|
|
178
|
-
* @throws Error - Throws if the period given has not been added
|
|
179
|
-
*/
|
|
180
|
-
disableTrack(periodObj: ITMPeriodObject, bufferType: "audio" | "video" | "text"): void;
|
|
181
|
-
/**
|
|
182
|
-
* Returns an object describing the chosen audio track for the given audio
|
|
183
|
-
* Period.
|
|
184
|
-
*
|
|
185
|
-
* Returns `null` is the the current audio track is disabled or not
|
|
186
|
-
* set yet.a pas bcp de marge de manoeuvre j'ai l'impression
|
|
187
|
-
*
|
|
188
|
-
* Returns `undefined` if the given Period's id is not currently found in the
|
|
189
|
-
* `TracksStore`. The cause being most probably that the corresponding
|
|
190
|
-
* Period is not available anymore.
|
|
191
|
-
* If you're in that case and if still have the corresponding JavaScript
|
|
192
|
-
* reference to the wanted Period, you can call `getOldAudioTrack` with it. It
|
|
193
|
-
* will try retrieving the choice it made from its cache.
|
|
194
|
-
* @param {Object} periodObj - The concerned Period's object
|
|
195
|
-
* @returns {Object|null|undefined} - The audio track chosen for this Period.
|
|
196
|
-
* `null` if audio tracks were disabled and `undefined` if the Period is not
|
|
197
|
-
* known.
|
|
198
|
-
*/
|
|
199
|
-
getChosenAudioTrack(periodObj: ITMPeriodObject): IAudioTrack | null;
|
|
200
|
-
/**
|
|
201
|
-
* Returns an object describing the chosen text track for the given text
|
|
202
|
-
* Period.
|
|
203
|
-
*
|
|
204
|
-
* Returns null is the the current text track is disabled or not
|
|
205
|
-
* set yet.
|
|
206
|
-
*
|
|
207
|
-
* @param {Object} periodObj - The concerned Period's object
|
|
208
|
-
* @returns {Object|null} - The text track chosen for this Period
|
|
209
|
-
*/
|
|
210
|
-
getChosenTextTrack(periodObj: ITMPeriodObject): ITextTrack | null;
|
|
211
|
-
/**
|
|
212
|
-
* Returns an object describing the chosen video track for the given video
|
|
213
|
-
* Period.
|
|
214
|
-
*
|
|
215
|
-
* Returns null is the the current video track is disabled or not
|
|
216
|
-
* set yet.
|
|
217
|
-
*
|
|
218
|
-
* @param {Object} periodObj - The concerned Period's object
|
|
219
|
-
* @returns {Object|null} - The video track chosen for this Period
|
|
220
|
-
*/
|
|
221
|
-
getChosenVideoTrack(periodObj: ITMPeriodObject): IVideoTrack | null;
|
|
222
|
-
/**
|
|
223
|
-
* Returns all available audio tracks for a given Period, as an array of
|
|
224
|
-
* objects.
|
|
225
|
-
*
|
|
226
|
-
* Returns `undefined` if the given Period's id is not known.
|
|
227
|
-
*
|
|
228
|
-
* @param {Object} periodObj - The concerned Period's object
|
|
229
|
-
* @returns {Array.<Object>}
|
|
230
|
-
*/
|
|
231
|
-
getAvailableAudioTracks(periodObj: ITMPeriodObject): IAvailableAudioTrack[] | undefined;
|
|
232
|
-
/**
|
|
233
|
-
* Returns all available text tracks for a given Period, as an array of
|
|
234
|
-
* objects.
|
|
235
|
-
*
|
|
236
|
-
* Returns `undefined` if the given Period's id is not known.
|
|
237
|
-
*
|
|
238
|
-
* @param {Object} periodObj - The concerned Period's object
|
|
239
|
-
* @returns {Array.<Object>}
|
|
240
|
-
*/
|
|
241
|
-
getAvailableTextTracks(periodObj: ITMPeriodObject): IAvailableTextTrack[] | undefined;
|
|
242
|
-
/**
|
|
243
|
-
* Returns all available video tracks for a given Period, as an array of
|
|
244
|
-
* objects.
|
|
245
|
-
*
|
|
246
|
-
* Returns `undefined` if the given Period's id is not known.
|
|
247
|
-
*
|
|
248
|
-
* @param {Object} periodObj - The concerned Period's object
|
|
249
|
-
* @returns {Array.<Object>}
|
|
250
|
-
*/
|
|
251
|
-
getAvailableVideoTracks(periodObj: ITMPeriodObject): IAvailableVideoTrack[] | undefined;
|
|
252
|
-
getLockedAudioRepresentations(periodObj: ITMPeriodObject): string[] | null;
|
|
253
|
-
getLockedVideoRepresentations(periodObj: ITMPeriodObject): string[] | null;
|
|
254
|
-
lockAudioRepresentations(periodObj: ITMPeriodObject, lockSettings: IAudioRepresentationsLockSettings): void;
|
|
255
|
-
lockVideoRepresentations(periodObj: ITMPeriodObject, lockSettings: IVideoRepresentationsLockSettings): void;
|
|
256
|
-
unlockAudioRepresentations(periodObj: ITMPeriodObject): void;
|
|
257
|
-
unlockVideoRepresentations(periodObj: ITMPeriodObject): void;
|
|
258
|
-
dispose(): void;
|
|
259
|
-
/**
|
|
260
|
-
* @param {Period} period
|
|
261
|
-
* @returns {Object}
|
|
262
|
-
*/
|
|
263
|
-
private _addPeriod;
|
|
264
|
-
private _resetVideoTrackChoices;
|
|
265
|
-
private _removePeriodObject;
|
|
266
|
-
private _getRepresentationsToLock;
|
|
267
|
-
}
|
|
268
|
-
/** Every information stored for a single Period. */
|
|
269
|
-
export interface ITMPeriodObject {
|
|
270
|
-
/** The Period in question. */
|
|
271
|
-
period: Period;
|
|
272
|
-
/**
|
|
273
|
-
* If `true`, this Period was present at the last `updatePeriodList` call,
|
|
274
|
-
* meaning it's probably still in the Manifest.
|
|
275
|
-
*
|
|
276
|
-
* If `false`, this Period was not. In that case it is probably just here
|
|
277
|
-
* because some audio/video/text buffer still contains data of the given type.
|
|
278
|
-
*/
|
|
279
|
-
inManifest: boolean;
|
|
280
|
-
audio: IAudioPeriodInfo;
|
|
281
|
-
text: ITextPeriodInfo;
|
|
282
|
-
video: IVideoPeriodInfo;
|
|
283
|
-
isRemoved: boolean;
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Internal representation of audio track preferences for a given `Period` of
|
|
287
|
-
* the Manifest.
|
|
288
|
-
*/
|
|
289
|
-
interface IAudioPeriodInfo {
|
|
290
|
-
/**
|
|
291
|
-
* Information on the last audio track settings wanted by the user.
|
|
292
|
-
* `null` if no audio track is wanted.
|
|
293
|
-
*/
|
|
294
|
-
storedSettings: {
|
|
295
|
-
/** Contains the last `Adaptation` wanted by the user. */
|
|
296
|
-
adaptation: Adaptation;
|
|
297
|
-
/** "Switching mode" in which the track switch should happen. */
|
|
298
|
-
switchingMode: IAudioTrackSwitchingMode;
|
|
299
|
-
/**
|
|
300
|
-
* Contains the last locked `Representation`s for this `Adaptation` wanted
|
|
301
|
-
* by the user.
|
|
302
|
-
* `null` if no Representation is locked.
|
|
303
|
-
*/
|
|
304
|
-
lockedRepresentations: SharedReference<IRepresentationsChoice | null>;
|
|
305
|
-
} | null;
|
|
306
|
-
/**
|
|
307
|
-
* Tracks are internally emitted through RxJS's `Subject`s.
|
|
308
|
-
* A `TrackDispatcher` allows to facilitate and centralize the management of
|
|
309
|
-
* that Subject so that the right wanted track and qualities are emitted
|
|
310
|
-
* through it.
|
|
311
|
-
*
|
|
312
|
-
* `null` if no `Subject` has been linked for this `Period` and buffer type
|
|
313
|
-
* for now.
|
|
314
|
-
*/
|
|
315
|
-
dispatcher: TrackDispatcher | null;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Internal representation of text track preferences for a given `Period` of
|
|
319
|
-
* the Manifest.
|
|
320
|
-
*/
|
|
321
|
-
export interface ITextPeriodInfo {
|
|
322
|
-
/**
|
|
323
|
-
* Information on the last text track settings wanted.
|
|
324
|
-
* `null` if no text track is wanted.
|
|
325
|
-
*/
|
|
326
|
-
storedSettings: {
|
|
327
|
-
/** Contains the last `Adaptation` wanted by the user. */
|
|
328
|
-
adaptation: Adaptation;
|
|
329
|
-
/** "Switching mode" in which the track switch should happen. */
|
|
330
|
-
switchingMode: "direct";
|
|
331
|
-
/**
|
|
332
|
-
* Contains the last locked `Representation`s for this `Adaptation` wanted
|
|
333
|
-
* by the user.
|
|
334
|
-
* `null` if no Representation is locked.
|
|
335
|
-
*/
|
|
336
|
-
lockedRepresentations: SharedReference<IRepresentationsChoice | null>;
|
|
337
|
-
} | null;
|
|
338
|
-
/**
|
|
339
|
-
* Tracks are internally emitted through RxJS's `Subject`s.
|
|
340
|
-
* A `TrackDispatcher` allows to facilitate and centralize the management of
|
|
341
|
-
* that Subject so that the right wanted track and qualities are emitted
|
|
342
|
-
* through it.
|
|
343
|
-
*
|
|
344
|
-
* `null` if no `Subject` has been linked for this `Period` and buffer type
|
|
345
|
-
* for now.
|
|
346
|
-
*/
|
|
347
|
-
dispatcher: TrackDispatcher | null;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Internal representation of video track preferences for a given `Period` of
|
|
351
|
-
* the Manifest.
|
|
352
|
-
*/
|
|
353
|
-
export interface IVideoPeriodInfo {
|
|
354
|
-
/**
|
|
355
|
-
* Information on the last video track settings wanted.
|
|
356
|
-
* `null` if no video track is wanted.
|
|
357
|
-
*/
|
|
358
|
-
storedSettings: {
|
|
359
|
-
/**
|
|
360
|
-
* The wanted Adaptation itself (may be different from `adaptationBase`
|
|
361
|
-
* when a trickmode track is chosen, in which case `adaptationBase` is
|
|
362
|
-
* the Adaptation the trickmode track is linked to and `adaptation` is
|
|
363
|
-
* the trickmode track).
|
|
364
|
-
*/
|
|
365
|
-
adaptation: Adaptation;
|
|
366
|
-
/** "Switching mode" in which the track switch should happen. */
|
|
367
|
-
switchingMode: IVideoTrackSwitchingMode;
|
|
368
|
-
/**
|
|
369
|
-
* The "base" Adaptation for `storedSettings` (if a trickmode track was
|
|
370
|
-
* chosen, this is the Adaptation the trickmode track is linked to, and not
|
|
371
|
-
* the trickmode track itself).
|
|
372
|
-
*/
|
|
373
|
-
adaptationBase: Adaptation;
|
|
374
|
-
/**
|
|
375
|
-
* Contains the last locked `Representation`s for this `Adaptation` wanted
|
|
376
|
-
* by the user.
|
|
377
|
-
* `null` if no Representation is locked.
|
|
378
|
-
*/
|
|
379
|
-
lockedRepresentations: SharedReference<IRepresentationsChoice | null>;
|
|
380
|
-
} | null;
|
|
381
|
-
/**
|
|
382
|
-
* Tracks are internally emitted through RxJS's `Subject`s.
|
|
383
|
-
* A `TrackDispatcher` allows to facilitate and centralize the management of
|
|
384
|
-
* that Subject so that the right wanted track and qualities are emitted
|
|
385
|
-
* through it.
|
|
386
|
-
*
|
|
387
|
-
* `null` if no `Subject` has been linked for this `Period` and buffer type
|
|
388
|
-
* for now.
|
|
389
|
-
*/
|
|
390
|
-
dispatcher: TrackDispatcher | null;
|
|
391
|
-
}
|
|
392
|
-
/** Events emitted by the TracksStore. */
|
|
393
|
-
interface ITracksStoreEvents {
|
|
394
|
-
newAvailablePeriods: IPeriod[];
|
|
395
|
-
brokenRepresentationsLock: IBrokenRepresentationsLockContext;
|
|
396
|
-
trackUpdate: ITrackUpdateEventPayload;
|
|
397
|
-
}
|
|
398
|
-
export interface IAudioRepresentationsLockSettings {
|
|
399
|
-
representations: string[];
|
|
400
|
-
switchingMode?: IAudioRepresentationsSwitchingMode | undefined;
|
|
401
|
-
}
|
|
402
|
-
export interface IVideoRepresentationsLockSettings {
|
|
403
|
-
representations: string[];
|
|
404
|
-
switchingMode?: IVideoRepresentationsSwitchingMode | undefined;
|
|
405
|
-
}
|
|
406
|
-
export {};
|