rx-player 4.0.0-dev.2023110700 → 4.0.0-dev.2023120600
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -226
- package/FILES.md +1 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -3
- package/dist/_esm5.processed/compat/add_text_track.js +4 -7
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +0 -7
- package/dist/_esm5.processed/compat/event_listeners.d.ts +2 -15
- package/dist/_esm5.processed/compat/event_listeners.js +2 -37
- package/dist/_esm5.processed/compat/index.d.ts +1 -3
- package/dist/_esm5.processed/compat/index.js +1 -3
- package/dist/_esm5.processed/config.d.ts +9 -21
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +0 -58
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +14 -54
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +2 -8
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +2 -11
- package/dist/_esm5.processed/core/api/debug/buffer_graph.js +2 -6
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +13 -32
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +3 -3
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +14 -35
- package/dist/_esm5.processed/core/api/option_utils.js +47 -230
- package/dist/_esm5.processed/core/api/public_api.d.ts +92 -266
- package/dist/_esm5.processed/core/api/public_api.js +451 -807
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.d.ts +3 -2
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.js +3 -2
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.d.ts → track_management/media_element_tracks_store.d.ts} +15 -75
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.js → track_management/media_element_tracks_store.js} +74 -193
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +84 -0
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +158 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +406 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.js +932 -0
- package/dist/_esm5.processed/core/api/utils.d.ts +1 -0
- package/dist/_esm5.processed/core/api/utils.js +28 -11
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +3 -3
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +83 -71
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +6 -5
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +10 -72
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +4 -4
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +6 -4
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +1 -3
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +7 -26
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +3 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +16 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -3
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +1 -6
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +4 -41
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +1 -1
- package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +1 -8
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +5 -19
- package/dist/_esm5.processed/core/init/types.d.ts +5 -15
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +2 -36
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +2 -82
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +19 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +1 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/index.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +33 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +49 -0
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +0 -1
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +2 -16
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +0 -15
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +183 -93
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +39 -0
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +133 -0
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +27 -13
- package/dist/_esm5.processed/core/stream/index.d.ts +2 -3
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -0
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +5 -7
- package/dist/_esm5.processed/core/stream/period/period_stream.js +13 -12
- package/dist/_esm5.processed/core/stream/period/types.d.ts +5 -14
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +2 -4
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +10 -46
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +29 -23
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +11 -1
- package/dist/_esm5.processed/default_config.d.ts +35 -98
- package/dist/_esm5.processed/default_config.js +36 -113
- package/dist/_esm5.processed/errors/custom_loader_error.d.ts +1 -3
- package/dist/_esm5.processed/errors/custom_loader_error.js +1 -3
- package/dist/_esm5.processed/errors/media_error.js +2 -2
- package/dist/_esm5.processed/errors/network_error.d.ts +0 -1
- package/dist/_esm5.processed/errors/network_error.js +0 -1
- package/dist/_esm5.processed/errors/request_error.d.ts +2 -3
- package/dist/_esm5.processed/errors/request_error.js +2 -5
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -3
- package/dist/_esm5.processed/features/features_object.js +0 -2
- package/dist/_esm5.processed/features/list/directfile.js +2 -5
- package/dist/_esm5.processed/features/list/index.d.ts +0 -2
- package/dist/_esm5.processed/features/list/index.js +0 -2
- package/dist/_esm5.processed/features/types.d.ts +3 -27
- package/dist/_esm5.processed/manifest/adaptation.d.ts +9 -11
- package/dist/_esm5.processed/manifest/adaptation.js +41 -30
- package/dist/_esm5.processed/manifest/index.d.ts +3 -4
- package/dist/_esm5.processed/manifest/manifest.d.ts +5 -54
- package/dist/_esm5.processed/manifest/manifest.js +5 -110
- package/dist/_esm5.processed/manifest/period.d.ts +4 -5
- package/dist/_esm5.processed/manifest/representation.d.ts +10 -5
- package/dist/_esm5.processed/manifest/representation.js +33 -10
- package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +2 -0
- package/dist/_esm5.processed/manifest/representation_index/static.js +6 -0
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +42 -21
- package/dist/_esm5.processed/manifest/types.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +17 -31
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +26 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +7 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +2 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +11 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +1 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +3 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +29 -17
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +13 -6
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +7 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +10 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +18 -2
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +6 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +7 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +5 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +12 -3
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +11 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +0 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +11 -17
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +21 -83
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +53 -125
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +119 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +159 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +3 -6
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +4 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +1 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +1 -9
- package/dist/_esm5.processed/public_types.d.ts +396 -308
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +5 -4
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +5 -4
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -3
- package/dist/_esm5.processed/transports/dash/pipelines.js +1 -4
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +26 -20
- package/dist/_esm5.processed/transports/dash/segment_parser.js +19 -24
- package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
- package/dist/_esm5.processed/transports/dash/text_parser.js +28 -33
- package/dist/_esm5.processed/transports/local/pipelines.js +1 -10
- package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/segment_parser.js +10 -10
- package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/local/text_parser.js +23 -23
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +34 -52
- package/dist/_esm5.processed/{utils/list_to_map.d.ts → transports/smooth/is_mp4_embedded_track.d.ts} +5 -5
- package/dist/_esm5.processed/{features/list/image_buffer.d.ts → transports/smooth/is_mp4_embedded_track.js} +7 -6
- package/dist/_esm5.processed/transports/smooth/pipelines.js +33 -190
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +28 -22
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +1 -26
- package/dist/_esm5.processed/transports/smooth/utils.js +1 -55
- package/dist/_esm5.processed/transports/types.d.ts +94 -89
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +5 -7
- package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +8 -12
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +19 -21
- package/dist/_esm5.processed/utils/array_includes.d.ts +2 -1
- package/dist/_esm5.processed/utils/array_includes.js +30 -28
- package/dist/_esm5.processed/utils/request/xhr.js +5 -5
- package/dist/commonjs/compat/is_codec_supported.js +22 -1
- package/dist/commonjs/compat/patch_webkit_source_buffer.js +2 -2
- package/dist/commonjs/config.d.ts +1 -0
- package/dist/commonjs/core/api/debug/buffer_graph.js +2 -6
- package/dist/commonjs/core/api/debug/modules/general_info.js +17 -10
- package/dist/commonjs/core/api/option_utils.d.ts +4 -0
- package/dist/commonjs/core/api/option_utils.js +8 -3
- package/dist/commonjs/core/api/public_api.d.ts +11 -1
- package/dist/commonjs/core/api/public_api.js +46 -11
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +11 -3
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +8 -1
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +8 -4
- package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
- package/dist/commonjs/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/commonjs/core/init/directfile_content_initializer.js +24 -7
- package/dist/commonjs/core/init/media_source_content_initializer.d.ts +6 -0
- package/dist/commonjs/core/init/media_source_content_initializer.js +4 -6
- package/dist/commonjs/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
- package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +16 -17
- package/dist/commonjs/core/init/utils/get_initial_time.d.ts +17 -3
- package/dist/commonjs/core/init/utils/get_initial_time.js +9 -7
- package/dist/commonjs/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.js +19 -2
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +2 -2
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/commonjs/core/stream/period/period_stream.js +2 -2
- package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +3 -3
- package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +1 -1
- package/dist/commonjs/default_config.d.ts +5 -0
- package/dist/commonjs/default_config.js +5 -0
- package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
- package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
- package/dist/commonjs/manifest/representation.js +18 -5
- package/dist/commonjs/manifest/representation_index/static.d.ts +1 -1
- package/dist/commonjs/manifest/representation_index/static.js +2 -2
- package/dist/commonjs/manifest/representation_index/types.d.ts +4 -4
- package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +30 -0
- package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/commonjs/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/base.js +4 -3
- package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
- package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
- package/dist/commonjs/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
- package/dist/commonjs/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/list.js +2 -2
- package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
- package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +42 -29
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +250 -51
- package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
- package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
- package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +13 -10
- package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +27 -14
- package/dist/commonjs/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +17 -18
- package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
- package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +21 -8
- package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +36 -20
- package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
- package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
- package/dist/commonjs/parsers/manifest/dash/node_parser_types.d.ts +2 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.js +3 -3
- package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.js +2 -2
- package/dist/commonjs/parsers/manifest/smooth/representation_index.d.ts +5 -5
- package/dist/commonjs/parsers/manifest/smooth/representation_index.js +25 -9
- package/dist/commonjs/parsers/manifest/types.d.ts +1 -0
- package/dist/commonjs/parsers/manifest/utils/index_helpers.js +1 -1
- package/dist/commonjs/public_types.d.ts +78 -34
- package/dist/commonjs/transports/dash/init_segment_loader.js +10 -5
- package/dist/commonjs/transports/dash/manifest_parser.js +5 -2
- package/dist/commonjs/transports/dash/segment_loader.js +2 -1
- package/dist/commonjs/transports/dash/text_loader.js +2 -0
- package/dist/commonjs/transports/metaplaylist/manifest_loader.js +2 -1
- package/dist/commonjs/transports/metaplaylist/pipelines.js +4 -1
- package/dist/commonjs/transports/smooth/pipelines.js +4 -2
- package/dist/commonjs/transports/smooth/segment_loader.js +2 -1
- package/dist/commonjs/transports/types.d.ts +12 -0
- package/dist/commonjs/transports/utils/generate_manifest_loader.js +6 -3
- package/dist/commonjs/utils/queue_microtask.d.ts +2 -0
- package/dist/commonjs/utils/queue_microtask.js +7 -0
- package/dist/commonjs/utils/request/fetch.d.ts +6 -0
- package/dist/commonjs/utils/request/fetch.js +29 -8
- package/dist/commonjs/utils/request/xhr.d.ts +11 -5
- package/dist/commonjs/utils/request/xhr.js +29 -8
- package/dist/es2017/compat/is_codec_supported.js +22 -1
- package/dist/es2017/compat/patch_webkit_source_buffer.js +2 -2
- package/dist/es2017/config.d.ts +1 -0
- package/dist/es2017/core/api/debug/buffer_graph.js +2 -6
- package/dist/es2017/core/api/debug/modules/general_info.js +17 -10
- package/dist/es2017/core/api/option_utils.d.ts +4 -0
- package/dist/es2017/core/api/option_utils.js +8 -3
- package/dist/es2017/core/api/public_api.d.ts +11 -1
- package/dist/es2017/core/api/public_api.js +44 -9
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +11 -3
- package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +8 -1
- package/dist/es2017/core/fetchers/segment/segment_fetcher.js +8 -4
- package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
- package/dist/es2017/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/es2017/core/init/directfile_content_initializer.js +24 -7
- package/dist/es2017/core/init/media_source_content_initializer.d.ts +6 -0
- package/dist/es2017/core/init/media_source_content_initializer.js +4 -6
- package/dist/es2017/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
- package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +16 -15
- package/dist/es2017/core/init/utils/get_initial_time.d.ts +17 -3
- package/dist/es2017/core/init/utils/get_initial_time.js +9 -7
- package/dist/es2017/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/es2017/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/es2017/core/segment_buffers/implementations/text/html/utils.js +18 -2
- package/dist/es2017/core/stream/adaptation/adaptation_stream.js +2 -2
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/es2017/core/stream/period/period_stream.js +2 -2
- package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +3 -3
- package/dist/es2017/core/stream/representation/utils/get_needed_segments.js +1 -1
- package/dist/es2017/default_config.d.ts +5 -0
- package/dist/es2017/default_config.js +5 -0
- package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
- package/dist/es2017/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
- package/dist/es2017/manifest/representation.js +18 -5
- package/dist/es2017/manifest/representation_index/static.d.ts +1 -1
- package/dist/es2017/manifest/representation_index/static.js +2 -2
- package/dist/es2017/manifest/representation_index/types.d.ts +4 -4
- package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
- package/dist/es2017/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/es2017/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/base.js +4 -3
- package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
- package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
- package/dist/es2017/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
- package/dist/es2017/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/list.js +2 -2
- package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
- package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +40 -27
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +246 -51
- package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
- package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
- package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.js +11 -8
- package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +27 -13
- package/dist/es2017/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
- package/dist/es2017/parsers/manifest/dash/common/parse_periods.js +13 -16
- package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
- package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.js +10 -8
- package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +36 -20
- package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
- package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
- package/dist/es2017/parsers/manifest/dash/node_parser_types.d.ts +2 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/es2017/parsers/manifest/local/representation_index.d.ts +1 -1
- package/dist/es2017/parsers/manifest/local/representation_index.js +3 -3
- package/dist/es2017/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
- package/dist/es2017/parsers/manifest/metaplaylist/representation_index.js +2 -2
- package/dist/es2017/parsers/manifest/smooth/representation_index.d.ts +5 -5
- package/dist/es2017/parsers/manifest/smooth/representation_index.js +25 -9
- package/dist/es2017/parsers/manifest/types.d.ts +1 -0
- package/dist/es2017/parsers/manifest/utils/index_helpers.js +1 -1
- package/dist/es2017/public_types.d.ts +78 -34
- package/dist/es2017/transports/dash/init_segment_loader.js +5 -0
- package/dist/es2017/transports/dash/manifest_parser.js +3 -0
- package/dist/es2017/transports/dash/segment_loader.js +1 -0
- package/dist/es2017/transports/dash/text_loader.js +2 -0
- package/dist/es2017/transports/metaplaylist/manifest_loader.js +1 -0
- package/dist/es2017/transports/metaplaylist/pipelines.js +4 -1
- package/dist/es2017/transports/smooth/pipelines.js +2 -0
- package/dist/es2017/transports/smooth/segment_loader.js +1 -0
- package/dist/es2017/transports/types.d.ts +12 -0
- package/dist/es2017/transports/utils/generate_manifest_loader.js +3 -0
- package/dist/es2017/utils/queue_microtask.d.ts +2 -0
- package/dist/es2017/utils/queue_microtask.js +5 -0
- package/dist/es2017/utils/request/fetch.d.ts +6 -0
- package/dist/es2017/utils/request/fetch.js +29 -8
- package/dist/es2017/utils/request/xhr.d.ts +11 -5
- package/dist/es2017/utils/request/xhr.js +30 -9
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +900 -492
- package/dist/rx-player.min.js +1 -1
- package/package.json +3 -7
- package/scripts/update-version +2 -0
- package/sonar-project.properties +1 -1
- package/src/compat/is_codec_supported.ts +23 -1
- package/src/compat/patch_webkit_source_buffer.ts +2 -2
- package/src/core/api/debug/buffer_graph.ts +2 -5
- package/src/core/api/debug/modules/general_info.ts +15 -10
- package/src/core/api/option_utils.ts +11 -3
- package/src/core/api/public_api.ts +48 -8
- package/src/core/fetchers/manifest/manifest_fetcher.ts +21 -3
- package/src/core/fetchers/segment/segment_fetcher.ts +19 -5
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +1 -0
- package/src/core/fetchers/utils/schedule_request.ts +1 -1
- package/src/core/init/directfile_content_initializer.ts +23 -7
- package/src/core/init/media_source_content_initializer.ts +13 -7
- package/src/core/init/utils/content_time_boundaries_observer.ts +23 -22
- package/src/core/init/utils/get_initial_time.ts +25 -12
- package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +15 -0
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +57 -6
- package/src/core/segment_buffers/implementations/text/html/utils.ts +19 -2
- package/src/core/stream/adaptation/adaptation_stream.ts +2 -2
- package/src/core/stream/orchestrator/stream_orchestrator.ts +3 -3
- package/src/core/stream/period/period_stream.ts +2 -2
- package/src/core/stream/representation/utils/get_buffer_status.ts +3 -3
- package/src/core/stream/representation/utils/get_needed_segments.ts +2 -2
- package/src/default_config.ts +5 -0
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +3 -1
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +2 -0
- package/src/manifest/representation.ts +19 -6
- package/src/manifest/representation_index/static.ts +2 -2
- package/src/manifest/representation_index/types.ts +4 -4
- package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +37 -0
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +20 -0
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +182 -36
- package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +32 -0
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +5 -0
- package/src/parsers/manifest/dash/common/indexes/base.ts +12 -4
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +19 -5
- package/src/parsers/manifest/dash/common/indexes/index.ts +16 -4
- package/src/parsers/manifest/dash/common/indexes/list.ts +2 -2
- package/src/parsers/manifest/dash/common/indexes/template.ts +52 -31
- package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +4 -1
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +366 -60
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +63 -25
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +10 -4
- package/src/parsers/manifest/dash/common/parse_mpd.ts +28 -15
- package/src/parsers/manifest/dash/common/parse_periods.ts +12 -17
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +50 -26
- package/src/parsers/manifest/dash/common/parse_representations.ts +39 -20
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +4 -0
- package/src/parsers/manifest/dash/node_parser_types.ts +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +2 -0
- package/src/parsers/manifest/local/representation_index.ts +3 -3
- package/src/parsers/manifest/metaplaylist/representation_index.ts +2 -2
- package/src/parsers/manifest/smooth/representation_index.ts +23 -9
- package/src/parsers/manifest/types.ts +2 -0
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +1 -1
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +1 -1
- package/src/parsers/manifest/utils/index_helpers.ts +1 -1
- package/src/public_types.ts +79 -34
- package/src/transports/dash/init_segment_loader.ts +5 -0
- package/src/transports/dash/manifest_parser.ts +6 -0
- package/src/transports/dash/segment_loader.ts +1 -0
- package/src/transports/dash/text_loader.ts +2 -0
- package/src/transports/metaplaylist/manifest_loader.ts +1 -0
- package/src/transports/metaplaylist/pipelines.ts +4 -1
- package/src/transports/smooth/pipelines.ts +2 -0
- package/src/transports/smooth/segment_loader.ts +1 -0
- package/src/transports/types.ts +12 -0
- package/src/transports/utils/generate_manifest_loader.ts +3 -0
- package/src/utils/queue_microtask.ts +7 -0
- package/src/utils/request/fetch.ts +35 -8
- package/src/utils/request/xhr.ts +45 -14
- package/dist/_esm5.processed/compat/fullscreen.d.ts +0 -32
- package/dist/_esm5.processed/compat/fullscreen.js +0 -78
- package/dist/_esm5.processed/compat/is_offline.d.ts +0 -39
- package/dist/_esm5.processed/compat/is_offline.js +0 -43
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +0 -258
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +0 -989
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +0 -75
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +0 -133
- package/dist/_esm5.processed/features/list/bif_parser.d.ts +0 -23
- package/dist/_esm5.processed/features/list/bif_parser.js +0 -27
- package/dist/_esm5.processed/features/list/image_buffer.js +0 -25
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +0 -38
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +0 -129
- package/dist/_esm5.processed/utils/list_to_map.js +0 -28
- package/dist/_esm5.processed/utils/simple_set.d.ts +0 -51
- package/dist/_esm5.processed/utils/simple_set.js +0 -57
- package/dist/_esm5.processed/utils/uniq.d.ts +0 -36
- package/dist/_esm5.processed/utils/uniq.js +0 -43
- package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
- package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.js +0 -54
- package/dist/es2017/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
- package/dist/es2017/parsers/manifest/utils/is_segment_still_available.js +0 -51
- package/src/parsers/manifest/utils/is_segment_still_available.ts +0 -58
- package/src/typings/next-tick.d.ts +0 -23
- package/src/typings/object-assign.d.ts +0 -48
|
@@ -34,6 +34,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
34
34
|
*/
|
|
35
35
|
import { enableAudioTrack } from "../../../compat";
|
|
36
36
|
import EventEmitter from "../../../utils/event_emitter";
|
|
37
|
+
import isNullOrUndefined from "../../../utils/is_null_or_undefined";
|
|
37
38
|
import normalizeLanguage from "../../../utils/languages";
|
|
38
39
|
/**
|
|
39
40
|
* Check if track array is different from an other one
|
|
@@ -140,16 +141,13 @@ function createVideoTracks(videoTracks) {
|
|
|
140
141
|
}
|
|
141
142
|
/**
|
|
142
143
|
* Manage video, audio and text tracks for current direct file content.
|
|
143
|
-
* @class
|
|
144
|
+
* @class MediaElementTracksStore
|
|
144
145
|
*/
|
|
145
|
-
var
|
|
146
|
-
__extends(
|
|
147
|
-
function
|
|
146
|
+
var MediaElementTracksStore = /** @class */ (function (_super) {
|
|
147
|
+
__extends(MediaElementTracksStore, _super);
|
|
148
|
+
function MediaElementTracksStore(mediaElement) {
|
|
148
149
|
var _a, _b, _c;
|
|
149
150
|
var _this = _super.call(this) || this;
|
|
150
|
-
_this._preferredAudioTracks = [];
|
|
151
|
-
_this._preferredTextTracks = [];
|
|
152
|
-
_this._preferredVideoTracks = [];
|
|
153
151
|
// TODO In practice, the audio/video/text tracks API are not always implemented on
|
|
154
152
|
// the media element, although Typescript HTMLMediaElement types tend to mean
|
|
155
153
|
// that can't be undefined.
|
|
@@ -165,58 +163,19 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
165
163
|
_this._textTracks =
|
|
166
164
|
_this._nativeTextTracks !== undefined ? createTextTracks(_this._nativeTextTracks) :
|
|
167
165
|
[];
|
|
168
|
-
_this._lastEmittedNativeAudioTrack = (_a = _this.
|
|
169
|
-
_this._lastEmittedNativeVideoTrack = (_b = _this.
|
|
170
|
-
_this._lastEmittedNativeTextTrack = (_c = _this.
|
|
166
|
+
_this._lastEmittedNativeAudioTrack = (_a = _this._getCurrentAudioTrack()) === null || _a === void 0 ? void 0 : _a.nativeTrack;
|
|
167
|
+
_this._lastEmittedNativeVideoTrack = (_b = _this._getCurrentVideoTrack()) === null || _b === void 0 ? void 0 : _b.nativeTrack;
|
|
168
|
+
_this._lastEmittedNativeTextTrack = (_c = _this._getCurrentTextTrack()) === null || _c === void 0 ? void 0 : _c.nativeTrack;
|
|
171
169
|
_this._handleNativeTracksCallbacks();
|
|
172
170
|
return _this;
|
|
173
171
|
}
|
|
174
|
-
/**
|
|
175
|
-
* Set the list of preferred audio tracks, in preference order.
|
|
176
|
-
* @param {Array.<Object>} preferredAudioTracks
|
|
177
|
-
* @param {boolean} shouldApply - `true` if those preferences should be
|
|
178
|
-
* applied on the currently loaded Period. `false` if it should only
|
|
179
|
-
* be applied to new content.
|
|
180
|
-
*/
|
|
181
|
-
MediaElementTrackChoiceManager.prototype.setPreferredAudioTracks = function (preferredAudioTracks, shouldApply) {
|
|
182
|
-
this._preferredAudioTracks = preferredAudioTracks;
|
|
183
|
-
if (shouldApply) {
|
|
184
|
-
this._applyAudioPreferences();
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
/**
|
|
188
|
-
* Set the list of preferred text tracks, in preference order.
|
|
189
|
-
* @param {Array.<Object>} preferredTextTracks
|
|
190
|
-
* @param {boolean} shouldApply - `true` if those preferences should be
|
|
191
|
-
* applied on the currently loaded Period. `false` if it should only
|
|
192
|
-
* be applied to new content.
|
|
193
|
-
*/
|
|
194
|
-
MediaElementTrackChoiceManager.prototype.setPreferredTextTracks = function (preferredTextTracks, shouldApply) {
|
|
195
|
-
this._preferredTextTracks = preferredTextTracks;
|
|
196
|
-
if (shouldApply) {
|
|
197
|
-
this._applyTextPreferences();
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
/**
|
|
201
|
-
* Set the list of preferred video tracks, in preference order.
|
|
202
|
-
* @param {Array.<Object>} preferredVideoTracks
|
|
203
|
-
* @param {boolean} shouldApply - `true` if those preferences should be
|
|
204
|
-
* applied on the currently loaded Period. `false` if it should only
|
|
205
|
-
* be applied to new content.
|
|
206
|
-
*/
|
|
207
|
-
MediaElementTrackChoiceManager.prototype.setPreferredVideoTracks = function (preferredVideoTracks, shouldApply) {
|
|
208
|
-
this._preferredVideoTracks = preferredVideoTracks;
|
|
209
|
-
if (shouldApply) {
|
|
210
|
-
this._applyVideoPreferences();
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
172
|
/**
|
|
214
173
|
* Update the currently active audio track by setting the wanted audio track's
|
|
215
174
|
* ID property.
|
|
216
175
|
* Throws if the wanted audio track is not found.
|
|
217
176
|
* @param {string|number|undefined} id
|
|
218
177
|
*/
|
|
219
|
-
|
|
178
|
+
MediaElementTracksStore.prototype.setAudioTrackById = function (id) {
|
|
220
179
|
for (var i = 0; i < this._audioTracks.length; i++) {
|
|
221
180
|
var _a = this._audioTracks[i], track = _a.track, nativeTrack = _a.nativeTrack;
|
|
222
181
|
if (track.id === id) {
|
|
@@ -230,7 +189,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
230
189
|
/**
|
|
231
190
|
* Disable the currently-active text track, if one.
|
|
232
191
|
*/
|
|
233
|
-
|
|
192
|
+
MediaElementTracksStore.prototype.disableTextTrack = function () {
|
|
234
193
|
disableTextTracks(this._textTracks);
|
|
235
194
|
this._textTrackLockedOn = null;
|
|
236
195
|
};
|
|
@@ -240,7 +199,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
240
199
|
* Throws if the wanted text track is not found.
|
|
241
200
|
* @param {string|number|undefined} id
|
|
242
201
|
*/
|
|
243
|
-
|
|
202
|
+
MediaElementTracksStore.prototype.setTextTrackById = function (id) {
|
|
244
203
|
var hasSetTrack = false;
|
|
245
204
|
for (var i = 0; i < this._textTracks.length; i++) {
|
|
246
205
|
var _a = this._textTracks[i], track = _a.track, nativeTrack = _a.nativeTrack;
|
|
@@ -260,7 +219,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
260
219
|
/**
|
|
261
220
|
* Disable the currently-active video track, if one.
|
|
262
221
|
*/
|
|
263
|
-
|
|
222
|
+
MediaElementTracksStore.prototype.disableVideoTrack = function () {
|
|
264
223
|
disableVideoTracks(this._videoTracks);
|
|
265
224
|
this._videoTrackLockedOn = null;
|
|
266
225
|
};
|
|
@@ -270,7 +229,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
270
229
|
* Throws if the wanted video track is not found.
|
|
271
230
|
* @param {string|number|undefined} id
|
|
272
231
|
*/
|
|
273
|
-
|
|
232
|
+
MediaElementTracksStore.prototype.setVideoTrackById = function (id) {
|
|
274
233
|
for (var i = 0; i < this._videoTracks.length; i++) {
|
|
275
234
|
var _a = this._videoTracks[i], track = _a.track, nativeTrack = _a.nativeTrack;
|
|
276
235
|
if (track.id === id) {
|
|
@@ -287,12 +246,11 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
287
246
|
* Returns `undefined` if we cannot know which audio track is active.
|
|
288
247
|
* @returns {Object|null|undefined}
|
|
289
248
|
*/
|
|
290
|
-
|
|
291
|
-
var
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
return chosenPrivateAudioTrack;
|
|
249
|
+
MediaElementTracksStore.prototype.getChosenAudioTrack = function () {
|
|
250
|
+
var currentAudioTrack = this._getCurrentAudioTrack();
|
|
251
|
+
return isNullOrUndefined(currentAudioTrack) ?
|
|
252
|
+
currentAudioTrack :
|
|
253
|
+
currentAudioTrack.track;
|
|
296
254
|
};
|
|
297
255
|
/**
|
|
298
256
|
* Returns the currently active text track.
|
|
@@ -300,12 +258,11 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
300
258
|
* Returns `undefined` if we cannot know which text track is active.
|
|
301
259
|
* @returns {Object|null|undefined}
|
|
302
260
|
*/
|
|
303
|
-
|
|
304
|
-
var
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
return chosenPrivateTextTrack;
|
|
261
|
+
MediaElementTracksStore.prototype.getChosenTextTrack = function () {
|
|
262
|
+
var currentTextTrack = this._getCurrentTextTrack();
|
|
263
|
+
return isNullOrUndefined(currentTextTrack) ?
|
|
264
|
+
currentTextTrack :
|
|
265
|
+
currentTextTrack.track;
|
|
309
266
|
};
|
|
310
267
|
/**
|
|
311
268
|
* Returns the currently active video track.
|
|
@@ -313,18 +270,17 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
313
270
|
* Returns `undefined` if we cannot know which video track is active.
|
|
314
271
|
* @returns {Object|null|undefined}
|
|
315
272
|
*/
|
|
316
|
-
|
|
317
|
-
var
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
return chosenPrivateVideoTrack;
|
|
273
|
+
MediaElementTracksStore.prototype.getChosenVideoTrack = function () {
|
|
274
|
+
var currentVideoTrack = this._getCurrentVideoTrack();
|
|
275
|
+
return isNullOrUndefined(currentVideoTrack) ?
|
|
276
|
+
currentVideoTrack :
|
|
277
|
+
currentVideoTrack.track;
|
|
322
278
|
};
|
|
323
279
|
/**
|
|
324
280
|
* Returns a description of every available audio tracks.
|
|
325
281
|
* @returns {Array.<Object>}
|
|
326
282
|
*/
|
|
327
|
-
|
|
283
|
+
MediaElementTracksStore.prototype.getAvailableAudioTracks = function () {
|
|
328
284
|
return this._audioTracks.map(function (_a) {
|
|
329
285
|
var track = _a.track, nativeTrack = _a.nativeTrack;
|
|
330
286
|
return { id: track.id,
|
|
@@ -339,7 +295,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
339
295
|
* Returns a description of every available text tracks.
|
|
340
296
|
* @returns {Array.<Object>}
|
|
341
297
|
*/
|
|
342
|
-
|
|
298
|
+
MediaElementTracksStore.prototype.getAvailableTextTracks = function () {
|
|
343
299
|
return this._textTracks.map(function (_a) {
|
|
344
300
|
var track = _a.track, nativeTrack = _a.nativeTrack;
|
|
345
301
|
return { id: track.id,
|
|
@@ -355,7 +311,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
355
311
|
* Returns a description of every available video tracks.
|
|
356
312
|
* @returns {Array.<Object>}
|
|
357
313
|
*/
|
|
358
|
-
|
|
314
|
+
MediaElementTracksStore.prototype.getAvailableVideoTracks = function () {
|
|
359
315
|
return this._videoTracks.map(function (_a) {
|
|
360
316
|
var track = _a.track, nativeTrack = _a.nativeTrack;
|
|
361
317
|
return { id: track.id,
|
|
@@ -364,9 +320,9 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
364
320
|
});
|
|
365
321
|
};
|
|
366
322
|
/**
|
|
367
|
-
* Free the resources used by the
|
|
323
|
+
* Free the resources used by the MediaElementTracksStore.
|
|
368
324
|
*/
|
|
369
|
-
|
|
325
|
+
MediaElementTracksStore.prototype.dispose = function () {
|
|
370
326
|
if (this._nativeVideoTracks !== undefined) {
|
|
371
327
|
this._nativeVideoTracks.onchange = null;
|
|
372
328
|
this._nativeVideoTracks.onaddtrack = null;
|
|
@@ -390,7 +346,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
390
346
|
* `null` if no audio track is chosen.
|
|
391
347
|
* @returns {Object|undefined|null}
|
|
392
348
|
*/
|
|
393
|
-
|
|
349
|
+
MediaElementTracksStore.prototype._getCurrentAudioTrack = function () {
|
|
394
350
|
if (this._nativeAudioTracks === undefined) {
|
|
395
351
|
return undefined;
|
|
396
352
|
}
|
|
@@ -408,7 +364,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
408
364
|
* `null` if no video track is chosen.
|
|
409
365
|
* @returns {Object|undefined|null}
|
|
410
366
|
*/
|
|
411
|
-
|
|
367
|
+
MediaElementTracksStore.prototype._getCurrentVideoTrack = function () {
|
|
412
368
|
if (this._nativeVideoTracks === undefined) {
|
|
413
369
|
return undefined;
|
|
414
370
|
}
|
|
@@ -426,7 +382,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
426
382
|
* `null` if no text track is chosen.
|
|
427
383
|
* @returns {Object|undefined|null}
|
|
428
384
|
*/
|
|
429
|
-
|
|
385
|
+
MediaElementTracksStore.prototype._getCurrentTextTrack = function () {
|
|
430
386
|
if (this._nativeTextTracks === undefined) {
|
|
431
387
|
return undefined;
|
|
432
388
|
}
|
|
@@ -441,12 +397,19 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
441
397
|
/**
|
|
442
398
|
* Iterate over every available audio tracks on the media element and either:
|
|
443
399
|
* - if the last manually set audio track is found, set that one.
|
|
444
|
-
* - if not, set the most preferred one
|
|
445
400
|
* - if we still do not find an optimal track, let the one chosen by default
|
|
446
401
|
*/
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
402
|
+
MediaElementTracksStore.prototype._setPreviouslyLockedAudioTrack = function () {
|
|
403
|
+
if (this._audioTrackLockedOn === undefined) {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
else if (this._audioTrackLockedOn === null) {
|
|
407
|
+
for (var i = 0; i < this._audioTracks.length; i++) {
|
|
408
|
+
var nativeTrack = this._audioTracks[i].nativeTrack;
|
|
409
|
+
nativeTrack.enabled = false;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
450
413
|
for (var i = 0; i < this._audioTracks.length; i++) {
|
|
451
414
|
var nativeTrack = this._audioTracks[i].nativeTrack;
|
|
452
415
|
if (nativeTrack === this._audioTrackLockedOn) {
|
|
@@ -455,46 +418,21 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
455
418
|
}
|
|
456
419
|
}
|
|
457
420
|
}
|
|
458
|
-
this._applyAudioPreferences();
|
|
459
|
-
};
|
|
460
|
-
/**
|
|
461
|
-
* Try to find a track corresponding to the audio track preferences:
|
|
462
|
-
* - if found, set it as the active track
|
|
463
|
-
* - if not found, let the chosen audio track by default
|
|
464
|
-
*/
|
|
465
|
-
MediaElementTrackChoiceManager.prototype._applyAudioPreferences = function () {
|
|
466
|
-
// Re-set the last manually set audio track
|
|
467
|
-
this._audioTrackLockedOn = undefined;
|
|
468
|
-
var preferredAudioTracks = this._preferredAudioTracks;
|
|
469
|
-
for (var i = 0; i < preferredAudioTracks.length; i++) {
|
|
470
|
-
var track = preferredAudioTracks[i];
|
|
471
|
-
if (track !== null && track.language !== undefined) {
|
|
472
|
-
var normalized = normalizeLanguage(track.language);
|
|
473
|
-
for (var j = 0; j < this._audioTracks.length; j++) {
|
|
474
|
-
var audioTrack = this._audioTracks[j];
|
|
475
|
-
if (audioTrack.track.normalized === normalized &&
|
|
476
|
-
audioTrack.track.audioDescription === track.audioDescription) {
|
|
477
|
-
this._enableAudioTrackFromIndex(j);
|
|
478
|
-
return;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
// else just let the default one instead
|
|
484
421
|
};
|
|
485
422
|
/**
|
|
486
423
|
* Iterate over every available text tracks on the media element and either:
|
|
487
424
|
* - if the last manually set text track is found, set that one.
|
|
488
|
-
* - if not, set the most preferred one
|
|
489
425
|
* - if we still do not find an optimal track, just disable it.
|
|
490
426
|
*/
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
427
|
+
MediaElementTracksStore.prototype._setPreviouslyLockedTextTrack = function () {
|
|
428
|
+
if (this._textTrackLockedOn === undefined) {
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
else if (this._textTrackLockedOn === null) {
|
|
494
432
|
disableTextTracks(this._textTracks);
|
|
495
433
|
return;
|
|
496
434
|
}
|
|
497
|
-
else
|
|
435
|
+
else {
|
|
498
436
|
for (var i = 0; i < this._textTracks.length; i++) {
|
|
499
437
|
var nativeTrack = this._textTracks[i].nativeTrack;
|
|
500
438
|
if (nativeTrack === this._textTrackLockedOn) {
|
|
@@ -507,54 +445,21 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
507
445
|
}
|
|
508
446
|
}
|
|
509
447
|
}
|
|
510
|
-
// Else set the preferred one
|
|
511
|
-
this._applyTextPreferences();
|
|
512
|
-
};
|
|
513
|
-
/**
|
|
514
|
-
* Try to find a track corresponding to the text track preferences:
|
|
515
|
-
* - if found, set it as the active track
|
|
516
|
-
* - if not found, let the chosen text track by default
|
|
517
|
-
*/
|
|
518
|
-
MediaElementTrackChoiceManager.prototype._applyTextPreferences = function () {
|
|
519
|
-
// Re-set the last manually set audio track
|
|
520
|
-
this._textTrackLockedOn = undefined;
|
|
521
|
-
var preferredTextTracks = this._preferredTextTracks;
|
|
522
|
-
for (var i = 0; i < preferredTextTracks.length; i++) {
|
|
523
|
-
var track = preferredTextTracks[i];
|
|
524
|
-
if (track === null) {
|
|
525
|
-
disableTextTracks(this._textTracks);
|
|
526
|
-
return;
|
|
527
|
-
}
|
|
528
|
-
var normalized = normalizeLanguage(track.language);
|
|
529
|
-
for (var j = 0; j < this._textTracks.length; j++) {
|
|
530
|
-
var textTrack = this._textTracks[j];
|
|
531
|
-
if (textTrack.track.normalized === normalized &&
|
|
532
|
-
textTrack.track.closedCaption === track.closedCaption) {
|
|
533
|
-
// disable the rest
|
|
534
|
-
disableAllTextTracksBut(this._textTracks, textTrack.nativeTrack);
|
|
535
|
-
if (textTrack.nativeTrack.mode !== "showing") {
|
|
536
|
-
textTrack.nativeTrack.mode = "showing";
|
|
537
|
-
}
|
|
538
|
-
return;
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
// Else just disable text tracks
|
|
543
|
-
disableTextTracks(this._textTracks);
|
|
544
448
|
};
|
|
545
449
|
/**
|
|
546
450
|
* Iterate over every available video tracks on the media element and either:
|
|
547
451
|
* - if the last manually set video track is found, set that one.
|
|
548
|
-
* - if not, set the most preferred one
|
|
549
452
|
* - if we still do not find an optimal track, let the one chosen by default
|
|
550
453
|
*/
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
454
|
+
MediaElementTracksStore.prototype._setPreviouslyLockedVideoTrack = function () {
|
|
455
|
+
if (this._videoTrackLockedOn === undefined) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
else if (this._videoTrackLockedOn === null) {
|
|
554
459
|
disableVideoTracks(this._videoTracks);
|
|
555
460
|
return;
|
|
556
461
|
}
|
|
557
|
-
else
|
|
462
|
+
else {
|
|
558
463
|
for (var i = 0; i < this._videoTracks.length; i++) {
|
|
559
464
|
var nativeTrack = this._videoTracks[i].nativeTrack;
|
|
560
465
|
if (nativeTrack === this._videoTrackLockedOn) {
|
|
@@ -563,36 +468,12 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
563
468
|
}
|
|
564
469
|
}
|
|
565
470
|
}
|
|
566
|
-
// Else set the preferred one
|
|
567
|
-
this._applyVideoPreferences();
|
|
568
|
-
};
|
|
569
|
-
/**
|
|
570
|
-
* Try to find a track corresponding to the text track preferences:
|
|
571
|
-
* - if found, set it as the active track
|
|
572
|
-
* - if not found, let the chosen text track by default
|
|
573
|
-
*/
|
|
574
|
-
MediaElementTrackChoiceManager.prototype._applyVideoPreferences = function () {
|
|
575
|
-
// Re-set the last manually set video track
|
|
576
|
-
this._videoTrackLockedOn = undefined;
|
|
577
|
-
// NOTE: As we cannot access either codec information or sign interpretation
|
|
578
|
-
// information easily about the different codecs. It is the same case than
|
|
579
|
-
// if we had only tracks where those were set to undefined.
|
|
580
|
-
// Based on that, we should disable the video track as long as one of the
|
|
581
|
-
// set preferrence is "no video track" (i.e. `null`) as this is the only
|
|
582
|
-
// constraint that we know we can respect.
|
|
583
|
-
// Else, just chose the first track.
|
|
584
|
-
var preferredVideoTracks = this._preferredVideoTracks;
|
|
585
|
-
var hasNullPreference = preferredVideoTracks.some(function (p) { return p === null; });
|
|
586
|
-
if (hasNullPreference) {
|
|
587
|
-
disableVideoTracks(this._videoTracks);
|
|
588
|
-
}
|
|
589
|
-
// else just let the default one instead
|
|
590
471
|
};
|
|
591
472
|
/**
|
|
592
473
|
* Monitor native tracks add, remove and change callback and trigger the
|
|
593
474
|
* change events.
|
|
594
475
|
*/
|
|
595
|
-
|
|
476
|
+
MediaElementTracksStore.prototype._handleNativeTracksCallbacks = function () {
|
|
596
477
|
var _this = this;
|
|
597
478
|
if (this._nativeAudioTracks !== undefined) {
|
|
598
479
|
this._nativeAudioTracks.onaddtrack = function () {
|
|
@@ -601,9 +482,9 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
601
482
|
var newAudioTracks = createAudioTracks(_this._nativeAudioTracks);
|
|
602
483
|
if (areTrackArraysDifferent(_this._audioTracks, newAudioTracks)) {
|
|
603
484
|
_this._audioTracks = newAudioTracks;
|
|
604
|
-
_this.
|
|
485
|
+
_this._setPreviouslyLockedAudioTrack();
|
|
605
486
|
_this.trigger("availableAudioTracksChange", _this.getAvailableAudioTracks());
|
|
606
|
-
var chosenAudioTrack = _this.
|
|
487
|
+
var chosenAudioTrack = _this._getCurrentAudioTrack();
|
|
607
488
|
if ((chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.nativeTrack) !== _this._lastEmittedNativeAudioTrack) {
|
|
608
489
|
_this.trigger("audioTrackChange", (_a = chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.track) !== null && _a !== void 0 ? _a : null);
|
|
609
490
|
_this._lastEmittedNativeAudioTrack = (_b = chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.nativeTrack) !== null && _b !== void 0 ? _b : null;
|
|
@@ -618,7 +499,7 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
618
499
|
if (areTrackArraysDifferent(_this._audioTracks, newAudioTracks)) {
|
|
619
500
|
_this._audioTracks = newAudioTracks;
|
|
620
501
|
_this.trigger("availableAudioTracksChange", _this.getAvailableAudioTracks());
|
|
621
|
-
var chosenAudioTrack = _this.
|
|
502
|
+
var chosenAudioTrack = _this._getCurrentAudioTrack();
|
|
622
503
|
if ((chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.nativeTrack) !== _this._lastEmittedNativeAudioTrack) {
|
|
623
504
|
_this.trigger("audioTrackChange", (_a = chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.track) !== null && _a !== void 0 ? _a : null);
|
|
624
505
|
_this._lastEmittedNativeAudioTrack = (_b = chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.nativeTrack) !== null && _b !== void 0 ? _b : null;
|
|
@@ -653,9 +534,9 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
653
534
|
var newTextTracks = createTextTracks(_this._nativeTextTracks);
|
|
654
535
|
if (areTrackArraysDifferent(_this._textTracks, newTextTracks)) {
|
|
655
536
|
_this._textTracks = newTextTracks;
|
|
656
|
-
_this.
|
|
537
|
+
_this._setPreviouslyLockedTextTrack();
|
|
657
538
|
_this.trigger("availableTextTracksChange", _this.getAvailableTextTracks());
|
|
658
|
-
var chosenTextTrack = _this.
|
|
539
|
+
var chosenTextTrack = _this._getCurrentTextTrack();
|
|
659
540
|
if ((chosenTextTrack === null || chosenTextTrack === void 0 ? void 0 : chosenTextTrack.nativeTrack) !== _this._lastEmittedNativeTextTrack) {
|
|
660
541
|
_this.trigger("textTrackChange", (_a = chosenTextTrack === null || chosenTextTrack === void 0 ? void 0 : chosenTextTrack.track) !== null && _a !== void 0 ? _a : null);
|
|
661
542
|
_this._lastEmittedNativeTextTrack = (_b = chosenTextTrack === null || chosenTextTrack === void 0 ? void 0 : chosenTextTrack.nativeTrack) !== null && _b !== void 0 ? _b : null;
|
|
@@ -669,9 +550,9 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
669
550
|
var newTextTracks = createTextTracks(_this._nativeTextTracks);
|
|
670
551
|
if (areTrackArraysDifferent(_this._textTracks, newTextTracks)) {
|
|
671
552
|
_this._textTracks = newTextTracks;
|
|
672
|
-
_this.
|
|
553
|
+
_this._setPreviouslyLockedTextTrack();
|
|
673
554
|
_this.trigger("availableTextTracksChange", _this.getAvailableTextTracks());
|
|
674
|
-
var chosenTextTrack = _this.
|
|
555
|
+
var chosenTextTrack = _this._getCurrentTextTrack();
|
|
675
556
|
if ((chosenTextTrack === null || chosenTextTrack === void 0 ? void 0 : chosenTextTrack.nativeTrack) !== _this._lastEmittedNativeTextTrack) {
|
|
676
557
|
_this.trigger("textTrackChange", (_a = chosenTextTrack === null || chosenTextTrack === void 0 ? void 0 : chosenTextTrack.track) !== null && _a !== void 0 ? _a : null);
|
|
677
558
|
_this._lastEmittedNativeTextTrack = (_b = chosenTextTrack === null || chosenTextTrack === void 0 ? void 0 : chosenTextTrack.nativeTrack) !== null && _b !== void 0 ? _b : null;
|
|
@@ -706,9 +587,9 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
706
587
|
var newVideoTracks = createVideoTracks(_this._nativeVideoTracks);
|
|
707
588
|
if (areTrackArraysDifferent(_this._videoTracks, newVideoTracks)) {
|
|
708
589
|
_this._videoTracks = newVideoTracks;
|
|
709
|
-
_this.
|
|
590
|
+
_this._setPreviouslyLockedVideoTrack();
|
|
710
591
|
_this.trigger("availableVideoTracksChange", _this.getAvailableVideoTracks());
|
|
711
|
-
var chosenVideoTrack = _this.
|
|
592
|
+
var chosenVideoTrack = _this._getCurrentVideoTrack();
|
|
712
593
|
if ((chosenVideoTrack === null || chosenVideoTrack === void 0 ? void 0 : chosenVideoTrack.nativeTrack) !== _this._lastEmittedNativeVideoTrack) {
|
|
713
594
|
_this.trigger("videoTrackChange", (_a = chosenVideoTrack === null || chosenVideoTrack === void 0 ? void 0 : chosenVideoTrack.track) !== null && _a !== void 0 ? _a : null);
|
|
714
595
|
_this._lastEmittedNativeVideoTrack = (_b = chosenVideoTrack === null || chosenVideoTrack === void 0 ? void 0 : chosenVideoTrack.nativeTrack) !== null && _b !== void 0 ? _b : null;
|
|
@@ -722,9 +603,9 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
722
603
|
var newVideoTracks = createVideoTracks(_this._nativeVideoTracks);
|
|
723
604
|
if (areTrackArraysDifferent(_this._videoTracks, newVideoTracks)) {
|
|
724
605
|
_this._videoTracks = newVideoTracks;
|
|
725
|
-
_this.
|
|
606
|
+
_this._setPreviouslyLockedVideoTrack();
|
|
726
607
|
_this.trigger("availableVideoTracksChange", _this.getAvailableVideoTracks());
|
|
727
|
-
var chosenVideoTrack = _this.
|
|
608
|
+
var chosenVideoTrack = _this._getCurrentVideoTrack();
|
|
728
609
|
if ((chosenVideoTrack === null || chosenVideoTrack === void 0 ? void 0 : chosenVideoTrack.nativeTrack) !== _this._lastEmittedNativeVideoTrack) {
|
|
729
610
|
_this.trigger("videoTrackChange", (_a = chosenVideoTrack === null || chosenVideoTrack === void 0 ? void 0 : chosenVideoTrack.track) !== null && _a !== void 0 ? _a : null);
|
|
730
611
|
_this._lastEmittedNativeVideoTrack = (_b = chosenVideoTrack === null || chosenVideoTrack === void 0 ? void 0 : chosenVideoTrack.nativeTrack) !== null && _b !== void 0 ? _b : null;
|
|
@@ -758,15 +639,15 @@ var MediaElementTrackChoiceManager = /** @class */ (function (_super) {
|
|
|
758
639
|
* `this._audioTracks` array.
|
|
759
640
|
* @param {number} index}
|
|
760
641
|
*/
|
|
761
|
-
|
|
642
|
+
MediaElementTracksStore.prototype._enableAudioTrackFromIndex = function (index) {
|
|
762
643
|
enableAudioTrack(this._audioTracks.map(function (_a) {
|
|
763
644
|
var nativeTrack = _a.nativeTrack;
|
|
764
645
|
return nativeTrack;
|
|
765
646
|
}), index);
|
|
766
647
|
};
|
|
767
|
-
return
|
|
648
|
+
return MediaElementTracksStore;
|
|
768
649
|
}(EventEmitter));
|
|
769
|
-
export default
|
|
650
|
+
export default MediaElementTracksStore;
|
|
770
651
|
/**
|
|
771
652
|
* Disable all text track elements in the given array from showing.
|
|
772
653
|
* @param {Array.<Object>} textTracks
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import Manifest, { Adaptation } from "../../../manifest";
|
|
2
|
+
import EventEmitter from "../../../utils/event_emitter";
|
|
3
|
+
import SharedReference, { IReadOnlySharedReference } from "../../../utils/reference";
|
|
4
|
+
import { IAdaptationChoice, IRepresentationsChoice, ITrackSwitchingMode } from "../../stream";
|
|
5
|
+
/**
|
|
6
|
+
* Class handling track changes and quality locking for a single Period and
|
|
7
|
+
* Adaptation type.
|
|
8
|
+
* @class TrackDispatcher
|
|
9
|
+
*/
|
|
10
|
+
export default class TrackDispatcher extends EventEmitter<ITrackDispatcherEvent> {
|
|
11
|
+
/**
|
|
12
|
+
* `Manifest` object linked to the current content handled by the
|
|
13
|
+
* `TrackDispatcher`.
|
|
14
|
+
* Needed to subscribe to various events.
|
|
15
|
+
*/
|
|
16
|
+
private readonly _manifest;
|
|
17
|
+
/**
|
|
18
|
+
* Reference through which the wanted track will be emitted.
|
|
19
|
+
* `null` is emitted if no track for that type is wanted.
|
|
20
|
+
*/
|
|
21
|
+
private readonly _adaptationRef;
|
|
22
|
+
/**
|
|
23
|
+
* Last values emitted through `adaptationRef`.
|
|
24
|
+
* This value is mutated just before `adaptationRef` is "nexted".
|
|
25
|
+
*
|
|
26
|
+
* Storing this information allows to detect if some potential
|
|
27
|
+
* side-effects already led to the "nexting" of `adaptationRef` with the wanted
|
|
28
|
+
* settings, preventing the the `TrackDispatcher` from doing it again.
|
|
29
|
+
*/
|
|
30
|
+
private _lastEmitted;
|
|
31
|
+
/** Interface allowing to clean-up resources when they are not needed anymore. */
|
|
32
|
+
private _canceller;
|
|
33
|
+
/**
|
|
34
|
+
* Create a new `TrackDispatcher` by giving its Reference and an initial track
|
|
35
|
+
* setting.
|
|
36
|
+
* This constructor will update the Reference with the right preferences
|
|
37
|
+
* synchronously.
|
|
38
|
+
* @param {Object} manifest
|
|
39
|
+
* @param {Object} adaptationRef
|
|
40
|
+
* @param {Object|null} initialTrackInfo
|
|
41
|
+
*/
|
|
42
|
+
constructor(manifest: Manifest, adaptationRef: SharedReference<IAdaptationChoice | null | undefined>, initialTrackInfo: ITrackSetting | null);
|
|
43
|
+
/**
|
|
44
|
+
* Update the wanted track on the Reference linked to this `TrackDispatcher`.
|
|
45
|
+
* @param {Object|null} newTrackInfo
|
|
46
|
+
*/
|
|
47
|
+
updateTrack(newTrackInfo: ITrackSetting | null): void;
|
|
48
|
+
/**
|
|
49
|
+
* Create a shared reference which will emit the wanted locked Representations
|
|
50
|
+
* based on the current capabilities and the last user settings.
|
|
51
|
+
*
|
|
52
|
+
* @param {Object} trackInfo
|
|
53
|
+
* @returns {Object}
|
|
54
|
+
*/
|
|
55
|
+
private _constructLockedRepresentationsReference;
|
|
56
|
+
/**
|
|
57
|
+
* Free the resources (e.g. `Manifest` event listeners) linked to this
|
|
58
|
+
* `TrackDispatcher`.
|
|
59
|
+
*/
|
|
60
|
+
dispose(): void;
|
|
61
|
+
}
|
|
62
|
+
export interface ITrackDispatcherEvent {
|
|
63
|
+
/**
|
|
64
|
+
* Event sent when given locked Representations cannot be respected because
|
|
65
|
+
* none of them are currently "playable".
|
|
66
|
+
*/
|
|
67
|
+
noPlayableLockedRepresentation: null;
|
|
68
|
+
}
|
|
69
|
+
/** Define a new Track preference given to the `TrackDispatcher`. */
|
|
70
|
+
export interface ITrackSetting {
|
|
71
|
+
/** Contains the `Adaptation` wanted by the user. */
|
|
72
|
+
adaptation: Adaptation;
|
|
73
|
+
/** "Switching mode" in which the track switch should happen. */
|
|
74
|
+
switchingMode: ITrackSwitchingMode;
|
|
75
|
+
/**
|
|
76
|
+
* Contains the last locked `Representation`s for this `Adaptation` wanted
|
|
77
|
+
* by the user.
|
|
78
|
+
* `null` if no Representation is locked.
|
|
79
|
+
*
|
|
80
|
+
* Can be updated continuously while the `TrackDispatcher` is in possession
|
|
81
|
+
* of this shared reference.
|
|
82
|
+
*/
|
|
83
|
+
lockedRepresentations: IReadOnlySharedReference<IRepresentationsChoice | null>;
|
|
84
|
+
}
|