rx-player 3.26.2 → 3.27.0-dev.20220317
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/.github/workflows/perfs.yml +22 -0
- package/CHANGELOG.md +33 -1
- package/FILES.md +5 -4
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/browser_detection.d.ts +4 -2
- package/dist/_esm5.processed/compat/browser_detection.js +4 -2
- package/dist/_esm5.processed/compat/eme/close_session.d.ts +11 -5
- package/dist/_esm5.processed/compat/eme/close_session.js +144 -36
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +3 -5
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +27 -24
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +53 -34
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +43 -41
- package/dist/_esm5.processed/compat/eme/generate_key_request.d.ts +2 -3
- package/dist/_esm5.processed/compat/eme/generate_key_request.js +22 -26
- package/dist/_esm5.processed/compat/eme/load_session.d.ts +1 -2
- package/dist/_esm5.processed/compat/eme/load_session.js +68 -17
- package/dist/_esm5.processed/compat/event_listeners.js +2 -1
- package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +2 -2
- package/dist/_esm5.processed/config.d.ts +166 -1080
- package/dist/_esm5.processed/config.js +17 -1119
- package/dist/_esm5.processed/core/abr/bandwidth_estimator.js +4 -1
- package/dist/_esm5.processed/core/abr/buffer_based_chooser.d.ts +28 -6
- package/dist/_esm5.processed/core/abr/buffer_based_chooser.js +63 -12
- package/dist/_esm5.processed/core/abr/network_analyzer.d.ts +1 -1
- package/dist/_esm5.processed/core/abr/network_analyzer.js +2 -1
- package/dist/_esm5.processed/core/abr/pending_requests_store.js +3 -5
- package/dist/_esm5.processed/core/abr/representation_estimator.d.ts +1 -1
- package/dist/_esm5.processed/core/abr/representation_estimator.js +2 -2
- package/dist/_esm5.processed/core/api/get_player_state.js +1 -1
- package/dist/_esm5.processed/core/api/index.d.ts +2 -1
- package/dist/_esm5.processed/core/api/media_element_track_choice_manager.d.ts +6 -0
- package/dist/_esm5.processed/core/api/media_element_track_choice_manager.js +22 -4
- package/dist/_esm5.processed/core/api/option_utils.d.ts +3 -1
- package/dist/_esm5.processed/core/api/option_utils.js +19 -6
- package/dist/_esm5.processed/core/api/playback_observer.js +5 -1
- package/dist/_esm5.processed/core/api/public_api.d.ts +82 -71
- package/dist/_esm5.processed/core/api/public_api.js +72 -33
- package/dist/_esm5.processed/core/api/track_choice_manager.d.ts +6 -6
- package/dist/_esm5.processed/core/{eme → decrypt}/__tests__/__global__/utils.d.ts +7 -51
- package/dist/_esm5.processed/core/{eme → decrypt}/__tests__/__global__/utils.js +30 -75
- package/dist/_esm5.processed/core/{eme → decrypt}/attach_media_keys.d.ts +12 -12
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +104 -0
- package/dist/_esm5.processed/core/{eme/clear_eme_session.d.ts → decrypt/clear_on_stop.d.ts} +3 -4
- package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +41 -0
- package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +216 -0
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +866 -0
- package/dist/_esm5.processed/core/{eme/get_session.d.ts → decrypt/create_or_load_session.d.ts} +28 -26
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +124 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/create_session.d.ts +22 -19
- package/dist/_esm5.processed/core/decrypt/create_session.js +174 -0
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.d.ts +21 -0
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +81 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/find_key_system.d.ts +11 -14
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +300 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/get_current_key_system.d.ts +0 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/get_current_key_system.js +1 -1
- package/dist/_esm5.processed/core/{eme → decrypt}/get_media_keys.d.ts +13 -5
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +153 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/index.d.ts +5 -6
- package/dist/_esm5.processed/core/{eme → decrypt}/index.js +5 -5
- package/dist/_esm5.processed/core/{eme → decrypt}/init_media_keys.d.ts +6 -4
- package/dist/_esm5.processed/core/decrypt/init_media_keys.js +82 -0
- package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +77 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/session_events_listener.js +25 -24
- package/dist/_esm5.processed/core/{eme → decrypt}/set_server_certificate.d.ts +15 -6
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +141 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/types.d.ts +120 -242
- package/dist/_esm5.processed/core/{eme → decrypt}/types.js +0 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/utils/are_init_values_compatible.d.ts +3 -3
- package/dist/_esm5.processed/core/{eme → decrypt}/utils/are_init_values_compatible.js +5 -5
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/check_key_statuses.d.ts +2 -2
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/check_key_statuses.js +4 -3
- package/dist/_esm5.processed/core/{eme/utils/close_session.d.ts → decrypt/utils/clean_old_loaded_sessions.d.ts} +8 -7
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +85 -0
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/clean_old_stored_persistent_info.d.ts +1 -1
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/clean_old_stored_persistent_info.js +2 -2
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/get_drm_system_id.d.ts +0 -0
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/get_drm_system_id.js +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.d.ts +69 -0
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +99 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/utils/is_session_usable.d.ts +0 -1
- package/dist/_esm5.processed/core/{eme → decrypt}/utils/is_session_usable.js +4 -5
- package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.d.ts +44 -0
- package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +77 -0
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.d.ts +104 -0
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +155 -0
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +108 -0
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +303 -0
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/media_keys_infos_store.d.ts +4 -4
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/media_keys_infos_store.js +0 -0
- package/dist/_esm5.processed/core/{eme → decrypt}/utils/persistent_sessions_store.d.ts +8 -18
- package/dist/_esm5.processed/core/{eme → decrypt}/utils/persistent_sessions_store.js +119 -97
- package/dist/_esm5.processed/core/{eme/utils/init_data_container.d.ts → decrypt/utils/serializable_bytes.d.ts} +8 -5
- package/dist/_esm5.processed/core/{eme/utils/init_data_container.js → decrypt/utils/serializable_bytes.js} +9 -9
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/server_certificate_store.d.ts +1 -1
- package/dist/_esm5.processed/core/{eme → decrypt/utils}/server_certificate_store.js +1 -1
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +4 -4
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +3 -3
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +6 -2
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/try_urls_with_backoff.js +1 -1
- package/dist/_esm5.processed/core/init/get_initial_time.js +1 -1
- package/dist/_esm5.processed/core/init/initialize_directfile.d.ts +3 -3
- package/dist/_esm5.processed/core/init/initialize_directfile.js +11 -17
- package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +5 -3
- package/dist/_esm5.processed/core/init/initialize_media_source.js +18 -69
- package/dist/_esm5.processed/core/init/link_drm_and_content.d.ts +61 -0
- package/dist/_esm5.processed/core/init/link_drm_and_content.js +94 -0
- package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +4 -4
- package/dist/_esm5.processed/core/init/manifest_update_scheduler.js +2 -1
- package/dist/_esm5.processed/core/init/stall_avoider.js +1 -1
- package/dist/_esm5.processed/core/init/stream_events_emitter/are_same_stream_events.d.ts +4 -4
- package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.js +1 -1
- package/dist/_esm5.processed/core/init/stream_events_emitter/types.d.ts +2 -2
- package/dist/_esm5.processed/core/init/types.d.ts +2 -4
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +3 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +3 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +32 -31
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +4 -4
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +17 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +22 -5
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +2 -1
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +6 -3
- package/dist/_esm5.processed/core/stream/events_generators.d.ts +8 -3
- package/dist/_esm5.processed/core/stream/events_generators.js +3 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +1 -0
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.js +2 -1
- package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.js +1 -1
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +2 -1
- package/dist/_esm5.processed/core/stream/period/period_stream.js +3 -3
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +5 -6
- package/dist/_esm5.processed/core/stream/representation/get_buffer_status.d.ts +6 -1
- package/dist/_esm5.processed/core/stream/representation/get_buffer_status.js +12 -9
- package/dist/_esm5.processed/core/stream/representation/get_needed_segments.d.ts +19 -14
- package/dist/_esm5.processed/core/stream/representation/get_needed_segments.js +86 -10
- package/dist/_esm5.processed/core/stream/representation/get_segment_priority.js +1 -1
- package/dist/_esm5.processed/core/stream/representation/push_media_segment.js +3 -3
- package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +6 -0
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +19 -8
- package/dist/_esm5.processed/core/stream/types.d.ts +1 -1
- package/dist/_esm5.processed/default_config.d.ts +1114 -0
- package/dist/_esm5.processed/default_config.js +1145 -0
- package/dist/_esm5.processed/errors/request_error.js +3 -1
- package/dist/_esm5.processed/experimental/index.d.ts +2 -0
- package/dist/_esm5.processed/experimental/index.js +2 -0
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/push_data.d.ts +1 -0
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.js +2 -4
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +3 -3
- package/dist/_esm5.processed/features/features_object.js +1 -1
- package/dist/_esm5.processed/features/initialize_features.js +1 -1
- package/dist/_esm5.processed/features/list/eme.d.ts +3 -3
- package/dist/_esm5.processed/features/list/eme.js +5 -5
- package/dist/_esm5.processed/features/types.d.ts +3 -3
- package/dist/_esm5.processed/manifest/adaptation.d.ts +2 -2
- package/dist/_esm5.processed/manifest/adaptation.js +3 -1
- package/dist/_esm5.processed/manifest/manifest.d.ts +10 -23
- package/dist/_esm5.processed/manifest/manifest.js +10 -74
- package/dist/_esm5.processed/manifest/period.d.ts +3 -3
- package/dist/_esm5.processed/manifest/representation.d.ts +37 -5
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +18 -18
- package/dist/_esm5.processed/manifest/types.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +6 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/is_period_fulfilled.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +14 -14
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +17 -17
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +28 -20
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +20 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +17 -35
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +109 -96
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +8 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +18 -27
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +25 -23
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +21 -15
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +19 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +15 -38
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +8 -8
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +30 -30
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +7 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +1 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +8 -8
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +28 -28
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +15 -5
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.d.ts +11 -1
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +31 -19
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.d.ts +2 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.d.ts +1 -1
- package/dist/_esm5.processed/public_types.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +2 -1
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +4 -1
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +1 -1
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +1 -1
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/dash/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/segment_parser.js +6 -3
- package/dist/_esm5.processed/transports/dash/text_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/text_loader.js +1 -1
- package/dist/_esm5.processed/transports/dash/text_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/text_parser.js +8 -2
- package/dist/_esm5.processed/transports/local/segment_loader.d.ts +1 -2
- package/dist/_esm5.processed/transports/local/segment_loader.js +1 -1
- package/dist/_esm5.processed/transports/local/segment_parser.js +4 -1
- package/dist/_esm5.processed/transports/local/text_parser.js +8 -2
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +69 -11
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +0 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/types.d.ts +58 -30
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +1 -1
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.d.ts +1 -1
- package/dist/_esm5.processed/utils/cancellable_sleep.js +1 -1
- package/dist/_esm5.processed/utils/cast_to_observable.d.ts +1 -2
- package/dist/_esm5.processed/utils/cast_to_observable.js +1 -1
- package/dist/_esm5.processed/utils/deep_merge.d.ts +12 -0
- package/dist/_esm5.processed/utils/deep_merge.js +53 -0
- package/dist/_esm5.processed/utils/reference.d.ts +29 -0
- package/dist/_esm5.processed/utils/reference.js +72 -24
- package/dist/_esm5.processed/utils/request/fetch.d.ts +4 -5
- package/dist/_esm5.processed/utils/request/fetch.js +8 -6
- package/dist/_esm5.processed/utils/request/xhr.d.ts +6 -6
- package/dist/_esm5.processed/utils/request/xhr.js +3 -2
- package/dist/_esm5.processed/utils/rx-from_cancellable_promise.d.ts +1 -2
- package/dist/_esm5.processed/utils/rx-from_cancellable_promise.js +7 -2
- package/dist/_esm5.processed/utils/task_canceller.d.ts +5 -3
- package/dist/_esm5.processed/utils/task_canceller.js +3 -3
- package/dist/rx-player.js +5242 -3190
- package/dist/rx-player.min.js +1 -1
- package/dummy +1 -0
- package/{dist/_esm5.processed/core/eme/dispose_eme.d.ts → experimental/index.d.ts} +1 -4
- package/{dist/_esm5.processed/core/eme/dispose_media_keys.d.ts → experimental/index.js} +1 -6
- package/package.json +33 -36
- package/scripts/build/templates/experimental/index.d.ts +16 -0
- package/scripts/build/templates/experimental/index.js +16 -0
- package/scripts/doc-generator/generate_header_html.js +6 -7
- package/scripts/doc-generator/generate_page_html.js +3 -4
- package/scripts/doc-generator/generate_page_list_html.js +4 -5
- package/scripts/doc-generator/generate_sidebar_html.js +4 -7
- package/scripts/doc-generator/utils.js +0 -11
- package/scripts/generate_demo_list.js +3 -3
- package/scripts/generate_documentation_list.js +3 -3
- package/scripts/launch_static_server.js +127 -67
- package/scripts/run_standalone_demo.js +1 -0
- package/scripts/start_demo_web_server.js +1 -0
- package/sonar-project.properties +1 -1
- package/src/README.md +6 -6
- package/src/compat/__tests__/fullscreen.test.ts +7 -7
- package/src/compat/__tests__/is_vtt_cue.test.ts +1 -1
- package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +45 -5
- package/src/compat/browser_detection.ts +4 -2
- package/src/compat/eme/close_session.ts +90 -56
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +1 -1
- package/src/compat/eme/custom_media_keys/index.ts +28 -41
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +63 -46
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +51 -49
- package/src/compat/eme/generate_key_request.ts +25 -33
- package/src/compat/eme/load_session.ts +29 -31
- package/src/compat/event_listeners.ts +2 -1
- package/src/compat/should_favour_custom_safari_EME.ts +5 -2
- package/src/config.ts +17 -1210
- package/src/core/README.md +1 -1
- package/src/core/abr/__tests__/{get_estimate_from_buffer_levels.test.ts → buffer_based_chooser.test.ts} +94 -123
- package/src/core/abr/bandwidth_estimator.ts +4 -4
- package/src/core/abr/buffer_based_chooser.ts +85 -20
- package/src/core/abr/network_analyzer.ts +6 -7
- package/src/core/abr/pending_requests_store.ts +3 -5
- package/src/core/abr/representation_estimator.ts +6 -3
- package/src/core/api/__tests__/get_player_state.test.ts +3 -3
- package/src/core/api/__tests__/option_utils.test.ts +17 -17
- package/src/core/api/get_player_state.ts +1 -1
- package/src/core/api/index.ts +3 -0
- package/src/core/api/media_element_track_choice_manager.ts +22 -3
- package/src/core/api/option_utils.ts +37 -20
- package/src/core/api/playback_observer.ts +12 -8
- package/src/core/api/public_api.ts +152 -112
- package/src/core/api/track_choice_manager.ts +10 -9
- package/src/core/decrypt/README.md +22 -0
- package/src/core/decrypt/__tests__/__global__/get_license.test.ts +418 -0
- package/src/core/decrypt/__tests__/__global__/init_data.test.ts +675 -0
- package/src/core/{eme → decrypt}/__tests__/__global__/media_key_system_access.test.ts +99 -92
- package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +156 -0
- package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +262 -0
- package/src/core/{eme → decrypt}/__tests__/__global__/utils.ts +36 -103
- package/src/core/{eme → decrypt}/attach_media_keys.ts +49 -56
- package/src/core/decrypt/clear_on_stop.ts +48 -0
- package/src/core/decrypt/content_decryptor.ts +1158 -0
- package/src/core/decrypt/create_or_load_session.ts +130 -0
- package/src/core/decrypt/create_session.ts +175 -0
- package/src/core/decrypt/dispose_decryption_resources.ts +39 -0
- package/src/core/{eme → decrypt}/find_key_system.ts +126 -134
- package/src/core/{eme → decrypt}/get_current_key_system.ts +1 -1
- package/src/core/decrypt/get_media_keys.ts +145 -0
- package/src/core/{eme → decrypt}/index.ts +11 -8
- package/src/core/decrypt/init_media_keys.ts +51 -0
- package/src/core/{eme → decrypt}/session_events_listener.ts +93 -55
- package/src/core/decrypt/set_server_certificate.ts +104 -0
- package/src/core/{eme → decrypt}/types.ts +129 -259
- package/src/core/{eme → decrypt}/utils/__tests__/are_init_values_compatible.test.ts +1 -1
- package/src/core/{eme → decrypt/utils}/__tests__/clean_old_loaded_sessions.test.ts +29 -71
- package/src/core/{eme → decrypt/utils}/__tests__/clean_old_stored_persistent_info.test.ts +6 -6
- package/src/core/{eme → decrypt}/utils/are_init_values_compatible.ts +9 -9
- package/src/core/{eme → decrypt/utils}/check_key_statuses.ts +6 -5
- package/{dist/_esm5.processed/core/eme/clean_old_loaded_sessions.js → src/core/decrypt/utils/clean_old_loaded_sessions.ts} +20 -20
- package/src/core/{eme → decrypt/utils}/clean_old_stored_persistent_info.ts +3 -3
- package/src/core/{eme → decrypt/utils}/get_drm_system_id.ts +1 -1
- package/src/core/decrypt/utils/init_data_values_container.ts +119 -0
- package/src/core/{eme → decrypt}/utils/is_session_usable.ts +4 -5
- package/src/core/decrypt/utils/key_id_comparison.ts +82 -0
- package/src/core/decrypt/utils/key_session_record.ts +175 -0
- package/src/core/decrypt/utils/loaded_sessions_store.ts +318 -0
- package/src/core/{eme → decrypt/utils}/media_keys_infos_store.ts +4 -4
- package/src/core/{eme → decrypt}/utils/persistent_sessions_store.ts +122 -104
- package/src/core/{eme/utils/init_data_container.ts → decrypt/utils/serializable_bytes.ts} +8 -5
- package/src/core/{eme → decrypt/utils}/server_certificate_store.ts +2 -2
- package/src/core/fetchers/manifest/manifest_fetcher.ts +9 -9
- package/src/core/fetchers/segment/segment_fetcher.ts +10 -7
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +2 -2
- package/src/core/fetchers/utils/try_urls_with_backoff.ts +1 -1
- package/src/core/init/.initialize_media_source.ts.un~ +0 -0
- package/src/core/init/get_initial_time.ts +2 -1
- package/src/core/init/initialize_directfile.ts +19 -22
- package/src/core/init/initialize_media_source.ts +43 -106
- package/src/core/init/link_drm_and_content.ts +176 -0
- package/src/core/init/manifest_update_scheduler.ts +12 -10
- package/src/core/init/stall_avoider.ts +6 -5
- package/src/core/init/stream_events_emitter/are_same_stream_events.ts +4 -4
- package/src/core/init/stream_events_emitter/stream_events_emitter.ts +2 -1
- package/src/core/init/stream_events_emitter/types.ts +2 -2
- package/src/core/init/types.ts +1 -39
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +2 -1
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +6 -7
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +32 -31
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +4 -4
- package/src/core/segment_buffers/inventory/segment_inventory.ts +42 -8
- package/src/core/stream/adaptation/adaptation_stream.ts +7 -1
- package/src/core/stream/events_generators.ts +9 -4
- package/src/core/stream/orchestrator/stream_orchestrator.ts +9 -4
- package/src/core/stream/period/create_empty_adaptation_stream.ts +2 -1
- package/src/core/stream/period/get_adaptation_switch_strategy.ts +1 -1
- package/src/core/stream/period/period_stream.ts +5 -2
- package/src/core/stream/representation/force_garbage_collection.ts +5 -7
- package/src/core/stream/representation/get_buffer_status.ts +28 -16
- package/src/core/stream/representation/get_needed_segments.ts +124 -28
- package/src/core/stream/representation/get_segment_priority.ts +1 -2
- package/src/core/stream/representation/push_media_segment.ts +3 -2
- package/src/core/stream/representation/representation_stream.ts +30 -7
- package/src/core/stream/types.ts +1 -1
- package/src/default_config.ts +1241 -0
- package/src/errors/request_error.ts +4 -1
- package/src/experimental/index.ts +5 -0
- package/src/experimental/tools/VideoThumbnailLoader/push_data.ts +1 -0
- package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +5 -7
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +3 -10
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +4 -4
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +1 -1
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +3 -3
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/types.ts +3 -3
- package/src/features/__tests__/initialize_features.test.ts +2 -2
- package/src/features/features_object.ts +1 -1
- package/src/features/initialize_features.ts +1 -1
- package/src/features/list/__tests__/eme.test.ts +5 -5
- package/src/features/list/eme.ts +5 -5
- package/src/features/types.ts +3 -10
- package/src/manifest/adaptation.ts +6 -4
- package/src/manifest/manifest.ts +16 -86
- package/src/manifest/period.ts +3 -3
- package/src/manifest/representation.ts +38 -5
- package/src/manifest/representation_index/types.ts +18 -18
- package/src/manifest/types.ts +3 -3
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +1 -0
- package/src/parsers/manifest/dash/common/get_hdr_information.ts +1 -1
- package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +3 -3
- package/src/parsers/manifest/dash/common/indexes/base.ts +6 -6
- package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +4 -2
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +2 -2
- package/src/parsers/manifest/dash/common/indexes/is_period_fulfilled.ts +1 -2
- package/src/parsers/manifest/dash/common/indexes/list.ts +14 -14
- package/src/parsers/manifest/dash/common/indexes/template.ts +18 -18
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +1 -1
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +51 -23
- package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +2 -2
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +1 -1
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +167 -134
- package/src/parsers/manifest/dash/common/parse_mpd.ts +9 -10
- package/src/parsers/manifest/dash/common/parse_periods.ts +80 -79
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +83 -75
- package/src/parsers/manifest/dash/common/parse_representations.ts +44 -63
- package/src/parsers/manifest/dash/node_parser_types.ts +30 -30
- package/src/parsers/manifest/dash/parsers_types.ts +3 -3
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -1
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +4 -4
- package/src/parsers/manifest/smooth/create_parser.ts +24 -21
- package/src/parsers/manifest/smooth/representation_index.ts +14 -14
- package/src/parsers/manifest/types.ts +28 -28
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +31 -33
- package/src/parsers/manifest/utils/clear_timeline_from_position.ts +15 -6
- package/src/parsers/manifest/utils/index_helpers.ts +2 -2
- package/src/parsers/manifest/utils/update_segment_timeline.ts +32 -21
- package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +1 -0
- package/src/parsers/texttracks/webvtt/html/to_html.ts +2 -2
- package/src/parsers/texttracks/webvtt/parse_cue_block.ts +1 -1
- package/src/public_types.ts +5 -1
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +2 -2
- package/src/transports/dash/image_pipelines.ts +4 -1
- package/src/transports/dash/init_segment_loader.ts +1 -1
- package/src/transports/dash/manifest_parser.ts +1 -1
- package/src/transports/dash/segment_loader.ts +7 -7
- package/src/transports/dash/segment_parser.ts +8 -1
- package/src/transports/dash/text_loader.ts +2 -2
- package/src/transports/dash/text_parser.ts +11 -1
- package/src/transports/local/segment_loader.ts +4 -4
- package/src/transports/local/segment_parser.ts +4 -0
- package/src/transports/local/text_parser.ts +8 -0
- package/src/transports/metaplaylist/manifest_loader.ts +1 -1
- package/src/transports/metaplaylist/pipelines.ts +1 -1
- package/src/transports/smooth/pipelines.ts +29 -16
- package/src/transports/smooth/segment_loader.ts +8 -8
- package/src/transports/types.ts +59 -30
- package/src/transports/utils/call_custom_manifest_loader.ts +6 -6
- package/src/transports/utils/generate_manifest_loader.ts +1 -1
- package/src/utils/__tests__/deep_merge.test.ts +48 -0
- package/src/utils/__tests__/flat_map.test.ts +12 -7
- package/src/utils/cancellable_sleep.ts +1 -1
- package/src/utils/cast_to_observable.ts +1 -2
- package/src/utils/deep_merge.ts +46 -0
- package/src/utils/reference.ts +116 -23
- package/src/utils/request/fetch.ts +17 -15
- package/src/utils/request/xhr.ts +11 -8
- package/src/utils/rx-from_cancellable_promise.ts +8 -4
- package/src/utils/task_canceller.ts +6 -4
- package/tsconfig.json +1 -2
- package/tsconfig.modules.json +1 -2
- package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.d.ts +0 -29
- package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.js +0 -67
- package/dist/_esm5.processed/core/eme/attach_media_keys.js +0 -57
- package/dist/_esm5.processed/core/eme/clean_old_loaded_sessions.d.ts +0 -59
- package/dist/_esm5.processed/core/eme/clear_eme_session.js +0 -50
- package/dist/_esm5.processed/core/eme/create_session.js +0 -126
- package/dist/_esm5.processed/core/eme/dispose_eme.js +0 -23
- package/dist/_esm5.processed/core/eme/dispose_media_keys.js +0 -36
- package/dist/_esm5.processed/core/eme/eme_manager.d.ts +0 -31
- package/dist/_esm5.processed/core/eme/eme_manager.js +0 -278
- package/dist/_esm5.processed/core/eme/find_key_system.js +0 -243
- package/dist/_esm5.processed/core/eme/get_media_keys.js +0 -85
- package/dist/_esm5.processed/core/eme/get_session.js +0 -68
- package/dist/_esm5.processed/core/eme/init_media_keys.js +0 -66
- package/dist/_esm5.processed/core/eme/session_events_listener.d.ts +0 -41
- package/dist/_esm5.processed/core/eme/set_server_certificate.js +0 -85
- package/dist/_esm5.processed/core/eme/utils/close_session.js +0 -81
- package/dist/_esm5.processed/core/eme/utils/init_data_store.d.ts +0 -115
- package/dist/_esm5.processed/core/eme/utils/init_data_store.js +0 -181
- package/dist/_esm5.processed/core/eme/utils/loaded_sessions_store.d.ts +0 -123
- package/dist/_esm5.processed/core/eme/utils/loaded_sessions_store.js +0 -173
- package/dist/_esm5.processed/core/init/create_eme_manager.d.ts +0 -34
- package/dist/_esm5.processed/core/init/create_eme_manager.js +0 -52
- package/src/core/abr/get_estimate_from_buffer_levels.ts +0 -85
- package/src/core/eme/README.md +0 -26
- package/src/core/eme/__tests__/__global__/get_license.test.ts +0 -414
- package/src/core/eme/__tests__/__global__/init_data.test.ts +0 -908
- package/src/core/eme/__tests__/__global__/media_keys.test.ts +0 -266
- package/src/core/eme/__tests__/__global__/server_certificate.test.ts +0 -364
- package/src/core/eme/__tests__/init_media_keys.test.ts +0 -182
- package/src/core/eme/clean_old_loaded_sessions.ts +0 -96
- package/src/core/eme/clear_eme_session.ts +0 -62
- package/src/core/eme/create_session.ts +0 -187
- package/src/core/eme/dispose_eme.ts +0 -25
- package/src/core/eme/dispose_media_keys.ts +0 -46
- package/src/core/eme/eme_manager.ts +0 -387
- package/src/core/eme/get_media_keys.ts +0 -141
- package/src/core/eme/get_session.ts +0 -135
- package/src/core/eme/init_media_keys.ts +0 -106
- package/src/core/eme/set_server_certificate.ts +0 -115
- package/src/core/eme/utils/close_session.ts +0 -113
- package/src/core/eme/utils/init_data_store.ts +0 -234
- package/src/core/eme/utils/loaded_sessions_store.ts +0 -235
- package/src/core/init/create_eme_manager.ts +0 -95
|
@@ -29,13 +29,13 @@ import resolveBaseURLs from "./resolve_base_urls";
|
|
|
29
29
|
* Parse the specific segment indexing information found in a representation
|
|
30
30
|
* into a IRepresentationIndex implementation.
|
|
31
31
|
* @param {Array.<Object>} representation
|
|
32
|
-
* @param {Object}
|
|
32
|
+
* @param {Object} context
|
|
33
33
|
* @returns {Array.<Object>}
|
|
34
34
|
*/
|
|
35
|
-
export default function parseRepresentationIndex(representation,
|
|
35
|
+
export default function parseRepresentationIndex(representation, context) {
|
|
36
36
|
var _a, _b;
|
|
37
|
-
var representationBaseURLs = resolveBaseURLs(
|
|
38
|
-
var aggressiveMode =
|
|
37
|
+
var representationBaseURLs = resolveBaseURLs(context.baseURLs, representation.children.baseURLs);
|
|
38
|
+
var aggressiveMode = context.aggressiveMode, availabilityTimeOffset = context.availabilityTimeOffset, manifestBoundsCalculator = context.manifestBoundsCalculator, isDynamic = context.isDynamic, periodEnd = context.end, periodStart = context.start, receivedTime = context.receivedTime, timeShiftBufferDepth = context.timeShiftBufferDepth, unsafelyBaseOnPreviousRepresentation = context.unsafelyBaseOnPreviousRepresentation, inbandEventStreams = context.inbandEventStreams, isLastPeriod = context.isLastPeriod;
|
|
39
39
|
var isEMSGWhitelisted = function (inbandEvent) {
|
|
40
40
|
if (inbandEventStreams === undefined) {
|
|
41
41
|
return false;
|
|
@@ -46,44 +46,44 @@ export default function parseRepresentationIndex(representation, representationI
|
|
|
46
46
|
return schemeIdUri === inbandEvent.schemeIdUri;
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
|
-
var
|
|
49
|
+
var reprIndexCtxt = { aggressiveMode: aggressiveMode, availabilityTimeComplete: true, availabilityTimeOffset: availabilityTimeOffset, unsafelyBaseOnPreviousRepresentation: unsafelyBaseOnPreviousRepresentation, isEMSGWhitelisted: isEMSGWhitelisted, isLastPeriod: isLastPeriod, manifestBoundsCalculator: manifestBoundsCalculator, isDynamic: isDynamic, periodEnd: periodEnd, periodStart: periodStart, receivedTime: receivedTime, representationBaseURLs: representationBaseURLs, representationBitrate: representation.attributes.bitrate,
|
|
50
50
|
representationId: representation.attributes.id, timeShiftBufferDepth: timeShiftBufferDepth };
|
|
51
51
|
var representationIndex;
|
|
52
52
|
if (representation.children.segmentBase !== undefined) {
|
|
53
53
|
var segmentBase = representation.children.segmentBase;
|
|
54
|
-
representationIndex = new BaseRepresentationIndex(segmentBase,
|
|
54
|
+
representationIndex = new BaseRepresentationIndex(segmentBase, reprIndexCtxt);
|
|
55
55
|
}
|
|
56
56
|
else if (representation.children.segmentList !== undefined) {
|
|
57
57
|
var segmentList = representation.children.segmentList;
|
|
58
|
-
representationIndex = new ListRepresentationIndex(segmentList,
|
|
58
|
+
representationIndex = new ListRepresentationIndex(segmentList, reprIndexCtxt);
|
|
59
59
|
}
|
|
60
60
|
else if (representation.children.segmentTemplate !== undefined ||
|
|
61
|
-
|
|
62
|
-
var segmentTemplates =
|
|
61
|
+
context.parentSegmentTemplates.length > 0) {
|
|
62
|
+
var segmentTemplates = context.parentSegmentTemplates.slice();
|
|
63
63
|
var childSegmentTemplate = representation.children.segmentTemplate;
|
|
64
64
|
if (childSegmentTemplate !== undefined) {
|
|
65
65
|
segmentTemplates.push(childSegmentTemplate);
|
|
66
66
|
}
|
|
67
67
|
var segmentTemplate = objectAssign.apply(void 0, __spreadArray([{}], segmentTemplates /* Ugly TS Hack */, false));
|
|
68
|
-
|
|
69
|
-
(_a = segmentTemplate.availabilityTimeComplete) !== null && _a !== void 0 ? _a :
|
|
70
|
-
|
|
68
|
+
reprIndexCtxt.availabilityTimeComplete =
|
|
69
|
+
(_a = segmentTemplate.availabilityTimeComplete) !== null && _a !== void 0 ? _a : context.availabilityTimeComplete;
|
|
70
|
+
reprIndexCtxt.availabilityTimeOffset =
|
|
71
71
|
((_b = segmentTemplate.availabilityTimeOffset) !== null && _b !== void 0 ? _b : 0) +
|
|
72
|
-
|
|
72
|
+
context.availabilityTimeOffset;
|
|
73
73
|
representationIndex = TimelineRepresentationIndex
|
|
74
74
|
.isTimelineIndexArgument(segmentTemplate) ?
|
|
75
|
-
new TimelineRepresentationIndex(segmentTemplate,
|
|
76
|
-
new TemplateRepresentationIndex(segmentTemplate,
|
|
75
|
+
new TimelineRepresentationIndex(segmentTemplate, reprIndexCtxt) :
|
|
76
|
+
new TemplateRepresentationIndex(segmentTemplate, reprIndexCtxt);
|
|
77
77
|
}
|
|
78
78
|
else {
|
|
79
|
-
var adaptationChildren =
|
|
79
|
+
var adaptationChildren = context.adaptation.children;
|
|
80
80
|
if (adaptationChildren.segmentBase !== undefined) {
|
|
81
81
|
var segmentBase = adaptationChildren.segmentBase;
|
|
82
|
-
representationIndex = new BaseRepresentationIndex(segmentBase,
|
|
82
|
+
representationIndex = new BaseRepresentationIndex(segmentBase, reprIndexCtxt);
|
|
83
83
|
}
|
|
84
84
|
else if (adaptationChildren.segmentList !== undefined) {
|
|
85
85
|
var segmentList = adaptationChildren.segmentList;
|
|
86
|
-
representationIndex = new ListRepresentationIndex(segmentList,
|
|
86
|
+
representationIndex = new ListRepresentationIndex(segmentList, reprIndexCtxt);
|
|
87
87
|
}
|
|
88
88
|
else {
|
|
89
89
|
representationIndex = new TemplateRepresentationIndex({
|
|
@@ -91,7 +91,7 @@ export default function parseRepresentationIndex(representation, representationI
|
|
|
91
91
|
timescale: 1,
|
|
92
92
|
startNumber: 0,
|
|
93
93
|
media: "",
|
|
94
|
-
},
|
|
94
|
+
}, reprIndexCtxt);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
return representationIndex;
|
|
@@ -15,41 +15,19 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Adaptation } from "../../../../manifest";
|
|
17
17
|
import { IParsedRepresentation } from "../../types";
|
|
18
|
-
import { IAdaptationSetIntermediateRepresentation, IRepresentationIntermediateRepresentation
|
|
19
|
-
import
|
|
20
|
-
|
|
18
|
+
import { IAdaptationSetIntermediateRepresentation, IRepresentationIntermediateRepresentation } from "../node_parser_types";
|
|
19
|
+
import { IRepresentationIndexContext } from "./parse_representation_index";
|
|
20
|
+
/**
|
|
21
|
+
* Process intermediate representations to create final parsed representations.
|
|
22
|
+
* @param {Array.<Object>} representationsIR
|
|
23
|
+
* @param {Object} context
|
|
24
|
+
* @returns {Array.<Object>}
|
|
25
|
+
*/
|
|
26
|
+
export default function parseRepresentations(representationsIR: IRepresentationIntermediateRepresentation[], adaptation: IAdaptationSetIntermediateRepresentation, context: IRepresentationContext): IParsedRepresentation[];
|
|
21
27
|
/** Supplementary context needed to parse a Representation. */
|
|
22
|
-
export interface
|
|
23
|
-
/** Whether we should request new segments even if they are not yet finished. */
|
|
24
|
-
aggressiveMode: boolean;
|
|
25
|
-
availabilityTimeComplete: boolean;
|
|
26
|
-
/** availability time offset of the concerned Adaptation. */
|
|
27
|
-
availabilityTimeOffset: number;
|
|
28
|
-
/** Eventual URLs from which every relative URL will be based on. */
|
|
29
|
-
baseURLs: IResolvedBaseUrl[];
|
|
30
|
-
/** Allows to obtain the first/last available position of a dynamic content. */
|
|
31
|
-
manifestBoundsCalculator: ManifestBoundsCalculator;
|
|
32
|
-
/** End time of the current period, in seconds. */
|
|
33
|
-
end?: number;
|
|
34
|
-
/** Whether the Manifest can evolve with time. */
|
|
35
|
-
isDynamic: boolean;
|
|
28
|
+
export interface IRepresentationContext extends IInheritedRepresentationIndexContext {
|
|
36
29
|
/** Manifest DASH profiles used for signalling some features */
|
|
37
|
-
manifestProfiles?: string;
|
|
38
|
-
/**
|
|
39
|
-
* Parent parsed SegmentTemplate elements.
|
|
40
|
-
* Sorted by provenance from higher level (e.g. Period) to lower-lever (e.g.
|
|
41
|
-
* AdaptationSet).
|
|
42
|
-
*/
|
|
43
|
-
parentSegmentTemplates: ISegmentTemplateIntermediateRepresentation[];
|
|
44
|
-
/**
|
|
45
|
-
* Time (in terms of `performance.now`) at which the XML file containing this
|
|
46
|
-
* Representation was received.
|
|
47
|
-
*/
|
|
48
|
-
receivedTime?: number;
|
|
49
|
-
/** Start time of the current period, in seconds. */
|
|
50
|
-
start: number;
|
|
51
|
-
/** Depth of the buffer for the whole content, in seconds. */
|
|
52
|
-
timeShiftBufferDepth?: number;
|
|
30
|
+
manifestProfiles?: string | undefined;
|
|
53
31
|
/**
|
|
54
32
|
* The parser should take this Adaptation - which is from a previously parsed
|
|
55
33
|
* Manifest for the same dynamic content - as a base to speed-up the parsing
|
|
@@ -61,9 +39,8 @@ export interface IAdaptationInfos {
|
|
|
61
39
|
unsafelyBaseOnPreviousAdaptation: Adaptation | null;
|
|
62
40
|
}
|
|
63
41
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* @param {Object} adaptationInfos
|
|
67
|
-
* @returns {Array.<Object>}
|
|
42
|
+
* Supplementary context needed to parse a Representation common with
|
|
43
|
+
* `IRepresentationIndexContext`.
|
|
68
44
|
*/
|
|
69
|
-
|
|
45
|
+
declare type IInheritedRepresentationIndexContext = Omit<IRepresentationIndexContext, "adaptation" | "unsafelyBaseOnPreviousRepresentation" | "inbandEventStreams">;
|
|
46
|
+
export {};
|
|
@@ -64,10 +64,10 @@ function getHDRInformation(_a) {
|
|
|
64
64
|
/**
|
|
65
65
|
* Process intermediate representations to create final parsed representations.
|
|
66
66
|
* @param {Array.<Object>} representationsIR
|
|
67
|
-
* @param {Object}
|
|
67
|
+
* @param {Object} context
|
|
68
68
|
* @returns {Array.<Object>}
|
|
69
69
|
*/
|
|
70
|
-
export default function parseRepresentations(representationsIR, adaptation,
|
|
70
|
+
export default function parseRepresentations(representationsIR, adaptation, context) {
|
|
71
71
|
var _a, _b, _c, _d;
|
|
72
72
|
var parsedRepresentations = [];
|
|
73
73
|
var _loop_1 = function (representation) {
|
|
@@ -92,14 +92,14 @@ export default function parseRepresentations(representationsIR, adaptation, adap
|
|
|
92
92
|
representationID += "-dup";
|
|
93
93
|
}
|
|
94
94
|
// Retrieve previous version of the Representation, if one.
|
|
95
|
-
var unsafelyBaseOnPreviousRepresentation = (_b = (_a =
|
|
95
|
+
var unsafelyBaseOnPreviousRepresentation = (_b = (_a = context
|
|
96
96
|
.unsafelyBaseOnPreviousAdaptation) === null || _a === void 0 ? void 0 : _a.getRepresentation(representationID)) !== null && _b !== void 0 ? _b : null;
|
|
97
97
|
var inbandEventStreams = combineInbandEventStreams(representation, adaptation);
|
|
98
|
-
var availabilityTimeComplete = (_c = representation.attributes.availabilityTimeComplete) !== null && _c !== void 0 ? _c :
|
|
98
|
+
var availabilityTimeComplete = (_c = representation.attributes.availabilityTimeComplete) !== null && _c !== void 0 ? _c : context.availabilityTimeComplete;
|
|
99
99
|
var availabilityTimeOffset = ((_d = representation.attributes.availabilityTimeOffset) !== null && _d !== void 0 ? _d : 0) +
|
|
100
|
-
|
|
101
|
-
var
|
|
102
|
-
var representationIndex = parseRepresentationIndex(representation,
|
|
100
|
+
context.availabilityTimeOffset;
|
|
101
|
+
var reprIndexCtxt = objectAssign({}, context, { availabilityTimeOffset: availabilityTimeOffset, availabilityTimeComplete: availabilityTimeComplete, unsafelyBaseOnPreviousRepresentation: unsafelyBaseOnPreviousRepresentation, adaptation: adaptation, inbandEventStreams: inbandEventStreams });
|
|
102
|
+
var representationIndex = parseRepresentationIndex(representation, reprIndexCtxt);
|
|
103
103
|
// Find bitrate
|
|
104
104
|
var representationBitrate = void 0;
|
|
105
105
|
if (representation.attributes.bitrate == null) {
|
|
@@ -203,7 +203,7 @@ export default function parseRepresentations(representationsIR, adaptation, adap
|
|
|
203
203
|
}
|
|
204
204
|
parsedRepresentation.hdrInfo =
|
|
205
205
|
getHDRInformation({ adaptationProfiles: adaptation.attributes.profiles,
|
|
206
|
-
manifestProfiles:
|
|
206
|
+
manifestProfiles: context.manifestProfiles, codecs: codecs });
|
|
207
207
|
parsedRepresentations.push(parsedRepresentation);
|
|
208
208
|
};
|
|
209
209
|
for (var _i = 0, representationsIR_1 = representationsIR; _i < representationsIR_1.length; _i++) {
|
|
@@ -125,7 +125,7 @@ export interface IPeriodChildren {
|
|
|
125
125
|
/**
|
|
126
126
|
* Provide a template with which we will be able to request segments.
|
|
127
127
|
*/
|
|
128
|
-
segmentTemplate?: ISegmentTemplateIntermediateRepresentation;
|
|
128
|
+
segmentTemplate?: ISegmentTemplateIntermediateRepresentation | undefined;
|
|
129
129
|
/**
|
|
130
130
|
* Allows to signal events linked to this Period.
|
|
131
131
|
*
|
|
@@ -177,16 +177,16 @@ export interface IAdaptationSetIntermediateRepresentation {
|
|
|
177
177
|
export interface IAdaptationSetChildren {
|
|
178
178
|
baseURLs: IBaseUrlIntermediateRepresentation[];
|
|
179
179
|
representations: IRepresentationIntermediateRepresentation[];
|
|
180
|
-
accessibilities?: IScheme[];
|
|
181
|
-
contentComponent?: IContentComponentAttributes;
|
|
182
|
-
contentProtections?: IContentProtectionIntermediateRepresentation[];
|
|
183
|
-
essentialProperties?: IScheme[];
|
|
184
|
-
inbandEventStreams?: IScheme[];
|
|
180
|
+
accessibilities?: IScheme[] | undefined;
|
|
181
|
+
contentComponent?: IContentComponentAttributes | undefined;
|
|
182
|
+
contentProtections?: IContentProtectionIntermediateRepresentation[] | undefined;
|
|
183
|
+
essentialProperties?: IScheme[] | undefined;
|
|
184
|
+
inbandEventStreams?: IScheme[] | undefined;
|
|
185
185
|
roles?: IScheme[];
|
|
186
|
-
supplementalProperties?: IScheme[];
|
|
187
|
-
segmentBase?: ISegmentBaseIntermediateRepresentation;
|
|
188
|
-
segmentList?: ISegmentListIntermediateRepresentation;
|
|
189
|
-
segmentTemplate?: ISegmentTemplateIntermediateRepresentation;
|
|
186
|
+
supplementalProperties?: IScheme[] | undefined;
|
|
187
|
+
segmentBase?: ISegmentBaseIntermediateRepresentation | undefined;
|
|
188
|
+
segmentList?: ISegmentListIntermediateRepresentation | undefined;
|
|
189
|
+
segmentTemplate?: ISegmentTemplateIntermediateRepresentation | undefined;
|
|
190
190
|
}
|
|
191
191
|
export interface IAdaptationSetAttributes {
|
|
192
192
|
audioSamplingRate?: string;
|
|
@@ -305,22 +305,22 @@ export interface IContentProtectionAttributes {
|
|
|
305
305
|
keyId?: Uint8Array;
|
|
306
306
|
}
|
|
307
307
|
export interface ISegmentTemplateIntermediateRepresentation {
|
|
308
|
-
availabilityTimeComplete?: boolean;
|
|
309
|
-
availabilityTimeOffset?: number;
|
|
310
|
-
bitstreamSwitching?: boolean;
|
|
311
|
-
duration?: number;
|
|
312
|
-
index?: string;
|
|
313
|
-
indexRange?: [number, number];
|
|
314
|
-
indexRangeExact?: boolean;
|
|
315
|
-
media?: string;
|
|
316
|
-
presentationTimeOffset?: number;
|
|
317
|
-
startNumber?: number;
|
|
318
|
-
timescale?: number;
|
|
308
|
+
availabilityTimeComplete?: boolean | undefined;
|
|
309
|
+
availabilityTimeOffset?: number | undefined;
|
|
310
|
+
bitstreamSwitching?: boolean | undefined;
|
|
311
|
+
duration?: number | undefined;
|
|
312
|
+
index?: string | undefined;
|
|
313
|
+
indexRange?: [number, number] | undefined;
|
|
314
|
+
indexRangeExact?: boolean | undefined;
|
|
315
|
+
media?: string | undefined;
|
|
316
|
+
presentationTimeOffset?: number | undefined;
|
|
317
|
+
startNumber?: number | undefined;
|
|
318
|
+
timescale?: number | undefined;
|
|
319
319
|
initialization?: {
|
|
320
320
|
media?: string;
|
|
321
|
-
};
|
|
322
|
-
timeline?: ISegmentTimelineElement[];
|
|
323
|
-
timelineParser?: ITimelineParser;
|
|
321
|
+
} | undefined;
|
|
322
|
+
timeline?: ISegmentTimelineElement[] | undefined;
|
|
323
|
+
timelineParser?: ITimelineParser | undefined;
|
|
324
324
|
}
|
|
325
325
|
export interface ISegmentTimelineElement {
|
|
326
326
|
start: number;
|
|
@@ -349,9 +349,9 @@ export interface IScheme {
|
|
|
349
349
|
*
|
|
350
350
|
* `undefined` if no `schemeIdUri` attribute has been found.
|
|
351
351
|
*/
|
|
352
|
-
schemeIdUri?: string;
|
|
352
|
+
schemeIdUri?: string | undefined;
|
|
353
353
|
/** Inner content of that scheme. */
|
|
354
|
-
value?: string;
|
|
354
|
+
value?: string | undefined;
|
|
355
355
|
}
|
|
356
356
|
export interface IEventStreamIntermediateRepresentation {
|
|
357
357
|
/** Contains data about the element's children. */
|
|
@@ -360,9 +360,9 @@ export interface IEventStreamIntermediateRepresentation {
|
|
|
360
360
|
attributes: IEventStreamAttributes;
|
|
361
361
|
}
|
|
362
362
|
export interface IEventStreamAttributes {
|
|
363
|
-
schemeIdUri?: string;
|
|
364
|
-
timescale?: number;
|
|
365
|
-
value?: string;
|
|
363
|
+
schemeIdUri?: string | undefined;
|
|
364
|
+
timescale?: number | undefined;
|
|
365
|
+
value?: string | undefined;
|
|
366
366
|
/**
|
|
367
367
|
* XML namespaces linked to the `<EventStream>` element.
|
|
368
368
|
*
|
|
@@ -373,7 +373,7 @@ export interface IEventStreamAttributes {
|
|
|
373
373
|
namespaces?: Array<{
|
|
374
374
|
key: string;
|
|
375
375
|
value: string;
|
|
376
|
-
}
|
|
376
|
+
}> | undefined;
|
|
377
377
|
}
|
|
378
378
|
export interface IEventStreamChildren {
|
|
379
379
|
events: IEventStreamEventIntermediateRepresentation[];
|
|
@@ -63,19 +63,19 @@ export interface ILoadedResource<T extends string | ArrayBuffer> {
|
|
|
63
63
|
* The URL of the loaded resource (post-redirection if one).
|
|
64
64
|
* `undefined` if unknown or inexistant.
|
|
65
65
|
*/
|
|
66
|
-
url?: string;
|
|
66
|
+
url?: string | undefined;
|
|
67
67
|
/**
|
|
68
68
|
* The time, in terms of `performance.now()`, at which the resource was
|
|
69
69
|
* starting to be fetched.
|
|
70
70
|
* `undefined` if unknown or not applicable.
|
|
71
71
|
*/
|
|
72
|
-
sendingTime?: number;
|
|
72
|
+
sendingTime?: number | undefined;
|
|
73
73
|
/**
|
|
74
74
|
* The time, in terms of `performance.now()`, at which the resource was
|
|
75
75
|
* fully-fetched.
|
|
76
76
|
* `undefined` if unknown or not applicable.
|
|
77
77
|
*/
|
|
78
|
-
receivedTime?: number;
|
|
78
|
+
receivedTime?: number | undefined;
|
|
79
79
|
/** The loaded resource itself, under the right format.
|
|
80
80
|
* Or an error, when fetching ressources.
|
|
81
81
|
*/
|
|
@@ -49,10 +49,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
49
49
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
|
-
import PPromise from "pinkie";
|
|
53
52
|
import log from "../../../../../log";
|
|
54
53
|
import assertUnreachable from "../../../../../utils/assert_unreachable";
|
|
55
54
|
import noop from "../../../../../utils/noop";
|
|
55
|
+
import PPromise from "../../../../../utils/promise";
|
|
56
56
|
import parseMpdIr from "../../common";
|
|
57
57
|
import { generateRootChildrenParser } from "./generators";
|
|
58
58
|
import { generateXLinkChildrenParser } from "./generators/XLink";
|
|
@@ -56,9 +56,9 @@ export interface IMetaPlaylist {
|
|
|
56
56
|
* @returns {Object}
|
|
57
57
|
*/
|
|
58
58
|
export default function parseMetaPlaylist(data: unknown, parserOptions: {
|
|
59
|
-
url?: string;
|
|
59
|
+
url?: string | undefined;
|
|
60
60
|
serverSyncInfos?: {
|
|
61
61
|
serverTimestamp: number;
|
|
62
62
|
clientTime: number;
|
|
63
|
-
};
|
|
63
|
+
} | undefined;
|
|
64
64
|
}): IParserResponse<IParsedManifest>;
|
|
@@ -16,19 +16,19 @@
|
|
|
16
16
|
import { IParsedManifest } from "../types";
|
|
17
17
|
import { IKeySystem } from "./parse_protection_node";
|
|
18
18
|
export interface IHSSParserConfiguration {
|
|
19
|
-
aggressiveMode?: boolean;
|
|
20
|
-
suggestedPresentationDelay?: number;
|
|
21
|
-
referenceDateTime?: number;
|
|
22
|
-
minRepresentationBitrate?: number;
|
|
23
|
-
keySystems?: (hex
|
|
19
|
+
aggressiveMode?: boolean | undefined;
|
|
20
|
+
suggestedPresentationDelay?: number | undefined;
|
|
21
|
+
referenceDateTime?: number | undefined;
|
|
22
|
+
minRepresentationBitrate?: number | undefined;
|
|
23
|
+
keySystems?: ((hex: Uint8Array | undefined) => IKeySystem[]) | undefined;
|
|
24
24
|
serverSyncInfos?: {
|
|
25
25
|
serverTimestamp: number;
|
|
26
26
|
clientTime: number;
|
|
27
|
-
};
|
|
27
|
+
} | undefined;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* @param {Object|undefined} parserOptions
|
|
31
31
|
* @returns {Function}
|
|
32
32
|
*/
|
|
33
|
-
declare function createSmoothStreamingParser(parserOptions?: IHSSParserConfiguration): (manifest: Document, url?: string, manifestReceivedTime?: number) => IParsedManifest;
|
|
33
|
+
declare function createSmoothStreamingParser(parserOptions?: IHSSParserConfiguration): (manifest: Document, url?: string | undefined, manifestReceivedTime?: number | undefined) => IParsedManifest;
|
|
34
34
|
export default createSmoothStreamingParser;
|
|
@@ -91,14 +91,14 @@ export interface ISmoothRepresentationIndexContextInformation {
|
|
|
91
91
|
}
|
|
92
92
|
/** Information allowing to generate a Smooth initialization segment. */
|
|
93
93
|
interface ISmoothInitSegmentPrivateInfos {
|
|
94
|
-
bitsPerSample?: number;
|
|
95
|
-
channels?: number;
|
|
96
|
-
codecPrivateData?: string;
|
|
97
|
-
packetSize?: number;
|
|
98
|
-
samplingRate?: number;
|
|
94
|
+
bitsPerSample?: number | undefined;
|
|
95
|
+
channels?: number | undefined;
|
|
96
|
+
codecPrivateData?: string | undefined;
|
|
97
|
+
packetSize?: number | undefined;
|
|
98
|
+
samplingRate?: number | undefined;
|
|
99
99
|
protection?: {
|
|
100
100
|
keyId: Uint8Array;
|
|
101
|
-
};
|
|
101
|
+
} | undefined;
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* RepresentationIndex implementation for Smooth Manifests.
|
|
@@ -131,12 +131,12 @@ export default class SmoothRepresentationIndex implements IRepresentationIndex {
|
|
|
131
131
|
* Useful to know if a segment present in the timeline has actually been
|
|
132
132
|
* generated on the server-side
|
|
133
133
|
*/
|
|
134
|
-
private _scaledLiveGap
|
|
134
|
+
private _scaledLiveGap;
|
|
135
135
|
/**
|
|
136
136
|
* Defines the end of the latest available segment when this index was known to
|
|
137
137
|
* be valid, in the index's timescale.
|
|
138
138
|
*/
|
|
139
|
-
private _initialScaledLastPosition
|
|
139
|
+
private _initialScaledLastPosition;
|
|
140
140
|
/**
|
|
141
141
|
* Defines the earliest time when this index was known to be valid (that is, when
|
|
142
142
|
* all segments declared in it are available). This means either:
|
|
@@ -17,8 +17,8 @@ import { IRepresentationIndex } from "../../manifest";
|
|
|
17
17
|
import { IHDRInformation } from "../../manifest/types";
|
|
18
18
|
export interface IManifestStreamEvent {
|
|
19
19
|
start: number;
|
|
20
|
-
end?: number;
|
|
21
|
-
id?: string;
|
|
20
|
+
end?: number | undefined;
|
|
21
|
+
id?: string | undefined;
|
|
22
22
|
data: IParsedStreamEventData;
|
|
23
23
|
}
|
|
24
24
|
export interface IParsedStreamEventData {
|
|
@@ -32,7 +32,7 @@ export interface IParsedStreamEventData {
|
|
|
32
32
|
/** Describes information about an encryption Key ID of a given media. */
|
|
33
33
|
export interface IContentProtectionKID {
|
|
34
34
|
keyId: Uint8Array;
|
|
35
|
-
systemId?: string;
|
|
35
|
+
systemId?: string | undefined;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Encryption initialization data.
|
|
@@ -88,37 +88,37 @@ export interface IParsedRepresentation {
|
|
|
88
88
|
*/
|
|
89
89
|
id: string;
|
|
90
90
|
/** Codec(s) associated with this Representation. */
|
|
91
|
-
codecs?: string;
|
|
91
|
+
codecs?: string | undefined;
|
|
92
92
|
/**
|
|
93
93
|
* Information about the encryption associated with this Representation.
|
|
94
94
|
* Not set if unknown or if the content is not encrypted.
|
|
95
95
|
*/
|
|
96
|
-
contentProtections?: IContentProtections;
|
|
96
|
+
contentProtections?: IContentProtections | undefined;
|
|
97
97
|
/**
|
|
98
98
|
* Frame rate (images per seconds) associated with this Representation.
|
|
99
99
|
* Not set if unknown or if it makes no sense (e.g. for subtitles).
|
|
100
100
|
*/
|
|
101
|
-
frameRate?: string;
|
|
101
|
+
frameRate?: string | undefined;
|
|
102
102
|
/**
|
|
103
103
|
* Height (top to bottom) in pixels this Representation has.
|
|
104
104
|
* Not set if unknown or if it makes no sense (e.g. for audio).
|
|
105
105
|
*/
|
|
106
|
-
height?: number;
|
|
106
|
+
height?: number | undefined;
|
|
107
107
|
/**
|
|
108
108
|
* Defines the mime-type of the content.
|
|
109
109
|
* This allows to deduce the media container but most of the time, the
|
|
110
110
|
* `codecs` will also be needed to know how to decode that media.
|
|
111
111
|
*/
|
|
112
|
-
mimeType?: string;
|
|
112
|
+
mimeType?: string | undefined;
|
|
113
113
|
/**
|
|
114
114
|
* Width (left to right) in pixels this Representation has.
|
|
115
115
|
* Not set if unknown or if it makes no sense (e.g. for audio).
|
|
116
116
|
*/
|
|
117
|
-
width?: number;
|
|
117
|
+
width?: number | undefined;
|
|
118
118
|
/**
|
|
119
119
|
* Information about the HDR characteristic of a content.
|
|
120
120
|
*/
|
|
121
|
-
hdrInfo?: IHDRInformation;
|
|
121
|
+
hdrInfo?: IHDRInformation | undefined;
|
|
122
122
|
}
|
|
123
123
|
/** Every possible types an Adaptation can have. */
|
|
124
124
|
export declare type IParsedAdaptationType = "audio" | "video" | "text" | "image";
|
|
@@ -144,34 +144,34 @@ export interface IParsedAdaptation {
|
|
|
144
144
|
* Not set if unknown or if it makes no sense for the current track (e.g. for
|
|
145
145
|
* a video track).
|
|
146
146
|
*/
|
|
147
|
-
audioDescription?: boolean;
|
|
147
|
+
audioDescription?: boolean | undefined;
|
|
148
148
|
/**
|
|
149
149
|
* Whether this Adaptation are closed captions for the hard of hearing.
|
|
150
150
|
* Not set if unknown or if it makes no sense for the current track (e.g. for
|
|
151
151
|
* a video track).
|
|
152
152
|
*/
|
|
153
|
-
closedCaption?: boolean;
|
|
153
|
+
closedCaption?: boolean | undefined;
|
|
154
154
|
/**
|
|
155
155
|
* If true this Adaptation is in a dub: it was recorded in another language
|
|
156
156
|
* than the original(s) one(s).
|
|
157
157
|
*/
|
|
158
|
-
isDub?: boolean;
|
|
158
|
+
isDub?: boolean | undefined;
|
|
159
159
|
/**
|
|
160
160
|
* If true this Adaptation is in a sign interpreted: which is a variant of the
|
|
161
161
|
* video with sign language.
|
|
162
162
|
*/
|
|
163
|
-
isSignInterpreted?: boolean;
|
|
163
|
+
isSignInterpreted?: boolean | undefined;
|
|
164
164
|
/** Tells if the track is a trick mode track. */
|
|
165
|
-
isTrickModeTrack?: boolean;
|
|
165
|
+
isTrickModeTrack?: boolean | undefined;
|
|
166
166
|
/**
|
|
167
167
|
* Language the `Adaptation` is in.
|
|
168
168
|
* Not set if unknown or if it makes no sense for the current track.
|
|
169
169
|
*/
|
|
170
|
-
language?: string;
|
|
170
|
+
language?: string | undefined;
|
|
171
171
|
/**
|
|
172
172
|
* TrickMode tracks attached to the adaptation.
|
|
173
173
|
*/
|
|
174
|
-
trickModeTracks?: IParsedAdaptation[];
|
|
174
|
+
trickModeTracks?: IParsedAdaptation[] | undefined;
|
|
175
175
|
}
|
|
176
176
|
/** Information on a given period of time in the Manifest */
|
|
177
177
|
export interface IParsedPeriod {
|
|
@@ -193,18 +193,18 @@ export interface IParsedPeriod {
|
|
|
193
193
|
* Duration of the Period (from the start to the end), in seconds.
|
|
194
194
|
* `undefined` if the Period is the last one and is still being updated.
|
|
195
195
|
*/
|
|
196
|
-
duration?: number;
|
|
196
|
+
duration?: number | undefined;
|
|
197
197
|
/**
|
|
198
198
|
* Time at which the Period ends, in seconds.
|
|
199
199
|
* `undefined` if the Period is the last one and is still
|
|
200
200
|
* being updated.
|
|
201
201
|
*/
|
|
202
|
-
end?: number;
|
|
202
|
+
end?: number | undefined;
|
|
203
203
|
/**
|
|
204
204
|
* Array containing every stream event from period in manifest.
|
|
205
205
|
* `undefined` if no parsed stream event in manifest.
|
|
206
206
|
*/
|
|
207
|
-
streamEvents?: IManifestStreamEvent[];
|
|
207
|
+
streamEvents?: IManifestStreamEvent[] | undefined;
|
|
208
208
|
}
|
|
209
209
|
/** Information on the whole content */
|
|
210
210
|
export interface IParsedManifest {
|
|
@@ -227,23 +227,23 @@ export interface IParsedManifest {
|
|
|
227
227
|
* The wall-clock time when the manifest was generated and published at the
|
|
228
228
|
* origin server
|
|
229
229
|
*/
|
|
230
|
-
publishTime?: number;
|
|
230
|
+
publishTime?: number | undefined;
|
|
231
231
|
/** Underlying transport protocol: "smooth", "dash", "metaplaylist" etc. */
|
|
232
232
|
transportType: string;
|
|
233
233
|
/** Base time from which the segments are generated. */
|
|
234
|
-
availabilityStartTime?: number;
|
|
234
|
+
availabilityStartTime?: number | undefined;
|
|
235
235
|
/**
|
|
236
236
|
* Offset, in milliseconds, the client's clock (in terms of `performance.now`)
|
|
237
237
|
* has relatively to the server's
|
|
238
238
|
*/
|
|
239
|
-
clockOffset?: number;
|
|
239
|
+
clockOffset?: number | undefined;
|
|
240
240
|
/** If set, the Manifest needs to be updated when that Promise resolves. */
|
|
241
|
-
expired?: Promise<void
|
|
241
|
+
expired?: Promise<void> | undefined;
|
|
242
242
|
/**
|
|
243
243
|
* Duration of the validity of this Manifest from its download time.
|
|
244
244
|
* After that time has elapsed, the Manifest should be refreshed.
|
|
245
245
|
*/
|
|
246
|
-
lifetime?: number;
|
|
246
|
+
lifetime?: number | undefined;
|
|
247
247
|
/**
|
|
248
248
|
* Data allowing to calculate the minimum and maximum seekable positions at
|
|
249
249
|
* any given time.
|
|
@@ -253,7 +253,7 @@ export interface IParsedManifest {
|
|
|
253
253
|
* The minimum time, in seconds, available in this Manifest.
|
|
254
254
|
* `undefined` if that value is unknown.
|
|
255
255
|
*/
|
|
256
|
-
absoluteMinimumTime?: number;
|
|
256
|
+
absoluteMinimumTime?: number | undefined;
|
|
257
257
|
/**
|
|
258
258
|
* Some dynamic contents have the concept of a "window depth" (or "buffer
|
|
259
259
|
* depth") which allows to set a minimum position for all reachable
|
|
@@ -298,7 +298,7 @@ export interface IParsedManifest {
|
|
|
298
298
|
* Suggested delay from the last position the player should start from by
|
|
299
299
|
* default.
|
|
300
300
|
*/
|
|
301
|
-
suggestedPresentationDelay?: number;
|
|
301
|
+
suggestedPresentationDelay?: number | undefined;
|
|
302
302
|
/** URIs where the manifest can be refreshed by order of importance. */
|
|
303
|
-
uris?: string[];
|
|
303
|
+
uris?: string[] | undefined;
|
|
304
304
|
}
|
|
@@ -18,6 +18,7 @@ import { IIndexSegment } from "./index_helpers";
|
|
|
18
18
|
* Remove segments which starts before the given `firstAvailablePosition` from
|
|
19
19
|
* the timeline. `firstAvailablePosition` has to be time scaled.
|
|
20
20
|
* @param {Array.<Object>}
|
|
21
|
-
* @returns {number}
|
|
21
|
+
* @returns {number} - Returns the number of removed segments. This includes
|
|
22
|
+
* potential implicit segment from decremented `repeatCount` attributes.
|
|
22
23
|
*/
|
|
23
|
-
export default function clearTimelineFromPosition(timeline: IIndexSegment[], firstAvailablePosition: number):
|
|
24
|
+
export default function clearTimelineFromPosition(timeline: IIndexSegment[], firstAvailablePosition: number): number;
|