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
|
@@ -50,7 +50,9 @@ var RequestError = /** @class */ (function (_super) {
|
|
|
50
50
|
Object.setPrototypeOf(_this, RequestError.prototype);
|
|
51
51
|
_this.name = "RequestError";
|
|
52
52
|
_this.url = url;
|
|
53
|
-
|
|
53
|
+
if (xhr !== undefined) {
|
|
54
|
+
_this.xhr = xhr;
|
|
55
|
+
}
|
|
54
56
|
_this.status = status;
|
|
55
57
|
_this.type = type;
|
|
56
58
|
_this.message = type;
|
|
@@ -16,6 +16,7 @@ export default function pushData(inventoryInfos: {
|
|
|
16
16
|
adaptation: Adaptation;
|
|
17
17
|
representation: Representation;
|
|
18
18
|
segment: ISegment;
|
|
19
|
+
chunkSize: number | undefined;
|
|
19
20
|
start: number;
|
|
20
21
|
end: number;
|
|
21
22
|
}, parsed: ISegmentParserParsedMediaChunk<Uint8Array | ArrayBuffer>, videoSourceBuffer: AudioVideoSegmentBuffer): Observable<void>;
|
|
@@ -25,8 +25,8 @@ import { ILoaders } from "./types";
|
|
|
25
25
|
export default class VideoThumbnailLoader {
|
|
26
26
|
private readonly _videoElement;
|
|
27
27
|
private _player;
|
|
28
|
-
private _currentTask
|
|
29
|
-
private _nextTaskSegmentsCompleteIds
|
|
28
|
+
private _currentTask;
|
|
29
|
+
private _nextTaskSegmentsCompleteIds;
|
|
30
30
|
constructor(videoElement: HTMLVideoElement, player: Player);
|
|
31
31
|
/**
|
|
32
32
|
* Add imported loader to thumbnail loader loader object.
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import pinkie from "pinkie";
|
|
17
16
|
import { catchError, combineLatest, finalize, ignoreElements, lastValueFrom, map, merge as observableMerge, mergeMap, race as observableRace, Subject, take, tap, } from "rxjs";
|
|
18
17
|
import createSegmentFetcher from "../../../core/fetchers/segment/segment_fetcher";
|
|
19
18
|
import log from "../../../log";
|
|
20
19
|
import objectAssign from "../../../utils/object_assign";
|
|
20
|
+
import PPromise from "../../../utils/promise";
|
|
21
21
|
import { freeRequest } from "./create_request";
|
|
22
22
|
import getCompleteSegmentId from "./get_complete_segment_id";
|
|
23
23
|
import getContentInfos from "./get_content_infos";
|
|
@@ -26,8 +26,6 @@ import loadSegments from "./load_segments";
|
|
|
26
26
|
import pushData from "./push_data";
|
|
27
27
|
import removeBufferAroundTime$ from "./remove_buffer_around_time";
|
|
28
28
|
import VideoThumbnailLoaderError from "./video_thumbnail_loader_error";
|
|
29
|
-
var PPromise = typeof Promise === "function" ? Promise :
|
|
30
|
-
pinkie;
|
|
31
29
|
var MIN_NEEDED_DATA_AFTER_TIME = 2;
|
|
32
30
|
var loaders = {};
|
|
33
31
|
/**
|
|
@@ -168,7 +166,7 @@ var VideoThumbnailLoader = /** @class */ (function () {
|
|
|
168
166
|
if (end === undefined) {
|
|
169
167
|
end = start + (segment.duration / segment.timescale);
|
|
170
168
|
}
|
|
171
|
-
var inventoryInfos = objectAssign({ segment: segment, start: start, end: end }, contentInfos);
|
|
169
|
+
var inventoryInfos = objectAssign({ chunkSize: data.chunkSize, segment: segment, start: start, end: end }, contentInfos);
|
|
172
170
|
return pushData(inventoryInfos, data, videoSourceBuffer)
|
|
173
171
|
.pipe(tap(function () {
|
|
174
172
|
freeRequest(getCompleteSegmentId(inventoryInfos, segment));
|
|
@@ -80,7 +80,7 @@ function probeMediaConfiguration(config, browserAPIS) {
|
|
|
80
80
|
_loop_1(browserAPI);
|
|
81
81
|
}
|
|
82
82
|
return PPromise.all(promises).then(function () {
|
|
83
|
-
if (globalStatus
|
|
83
|
+
if (globalStatus === undefined) {
|
|
84
84
|
globalStatus = ProberStatus.Unknown;
|
|
85
85
|
}
|
|
86
86
|
var probedCapabilities = getProbedConfiguration(config, resultsFromAPIS.map(function (a) { return a.APIName; }));
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { lastValueFrom } from "rxjs";
|
|
17
16
|
import { requestMediaKeySystemAccess } from "../../../../compat";
|
|
18
17
|
import PPromise from "../../../../utils/promise";
|
|
19
18
|
import log from "../log";
|
|
@@ -39,7 +38,7 @@ export default function probeDRMInfos(mediaConfig) {
|
|
|
39
38
|
// So, the DRM configuration is not supported.
|
|
40
39
|
return PPromise.resolve([ProberStatus.NotSupported, result]);
|
|
41
40
|
}
|
|
42
|
-
return
|
|
41
|
+
return requestMediaKeySystemAccess(type, [configuration])
|
|
43
42
|
.then(function (keySystemAccess) {
|
|
44
43
|
result.compatibleConfiguration = keySystemAccess.getConfiguration();
|
|
45
44
|
var status = [ProberStatus.Supported, result];
|
package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js
CHANGED
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { lastValueFrom } from "rxjs";
|
|
17
16
|
import { requestMediaKeySystemAccess } from "../../../../compat";
|
|
18
17
|
import PPromise from "../../../../utils/promise";
|
|
19
18
|
import { ProberStatus, } from "../types";
|
|
@@ -42,7 +41,7 @@ export default function probeHDCPPolicy(config) {
|
|
|
42
41
|
contentType: "video/mp4;codecs=\"avc1.42E01E\"",
|
|
43
42
|
}],
|
|
44
43
|
};
|
|
45
|
-
return
|
|
44
|
+
return requestMediaKeySystemAccess(keySystem, [drmConfig])
|
|
46
45
|
.then(function (mediaKeysSystemAccess) {
|
|
47
46
|
return mediaKeysSystemAccess.createMediaKeys().then(function (mediaKeys) {
|
|
48
47
|
if (!("getStatusForPolicy" in mediaKeys)) {
|
|
@@ -46,9 +46,9 @@ export interface IDisplayConfiguration {
|
|
|
46
46
|
bitsPerComponent?: number;
|
|
47
47
|
}
|
|
48
48
|
export interface IMediaConfiguration {
|
|
49
|
-
type?: "media-source" | "file";
|
|
50
|
-
video?: IVideoConfiguration;
|
|
51
|
-
audio?: IAudioConfiguration;
|
|
49
|
+
type?: "media-source" | "file" | undefined;
|
|
50
|
+
video?: IVideoConfiguration | undefined;
|
|
51
|
+
audio?: IAudioConfiguration | undefined;
|
|
52
52
|
keySystem?: IKeySystem;
|
|
53
53
|
hdcp?: string;
|
|
54
54
|
display?: IDisplayConfiguration;
|
|
@@ -24,7 +24,7 @@ import features from "./features_object";
|
|
|
24
24
|
*/
|
|
25
25
|
export default function initializeFeaturesObject() {
|
|
26
26
|
if (0 /* EME */ === 1 /* IS_ENABLED */) {
|
|
27
|
-
features.
|
|
27
|
+
features.ContentDecryptor = require("../core/decrypt/index.ts").default;
|
|
28
28
|
}
|
|
29
29
|
if (0 /* BIF_PARSER */ === 1 /* IS_ENABLED */) {
|
|
30
30
|
features.imageBuffer =
|
|
@@ -18,6 +18,6 @@ import { IFeaturesObject } from "../types";
|
|
|
18
18
|
* Add ability to play encrypted contents
|
|
19
19
|
* @param {Object} features
|
|
20
20
|
*/
|
|
21
|
-
declare function
|
|
22
|
-
export {
|
|
23
|
-
export default
|
|
21
|
+
declare function addEMEFeature(features: IFeaturesObject): void;
|
|
22
|
+
export { addEMEFeature as EME };
|
|
23
|
+
export default addEMEFeature;
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
16
|
+
import ContentDecryptor from "../../core/decrypt";
|
|
17
17
|
/**
|
|
18
18
|
* Add ability to play encrypted contents
|
|
19
19
|
* @param {Object} features
|
|
20
20
|
*/
|
|
21
|
-
function
|
|
22
|
-
features.
|
|
21
|
+
function addEMEFeature(features) {
|
|
22
|
+
features.ContentDecryptor = ContentDecryptor;
|
|
23
23
|
}
|
|
24
|
-
export {
|
|
25
|
-
export default
|
|
24
|
+
export { addEMEFeature as EME };
|
|
25
|
+
export default addEMEFeature;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Observable } from "rxjs";
|
|
17
17
|
import MediaElementTrackChoiceManager from "../core/api/media_element_track_choice_manager";
|
|
18
|
-
import
|
|
18
|
+
import type ContentDecryptor from "../core/decrypt";
|
|
19
19
|
import { IDirectfileEvent, IDirectFileOptions } from "../core/init/initialize_directfile";
|
|
20
20
|
import { SegmentBuffer } from "../core/segment_buffers";
|
|
21
21
|
import { IDashParserResponse, IMPDParserArguments } from "../parsers/manifest/dash/parsers_types";
|
|
@@ -23,7 +23,7 @@ import DashWasmParser from "../parsers/manifest/dash/wasm-parser";
|
|
|
23
23
|
import { IHTMLTextTracksParserFn, INativeTextTracksParserFn } from "../parsers/texttracks";
|
|
24
24
|
import { ITransportFunction } from "../transports";
|
|
25
25
|
export declare type IDirectFileInit = (args: IDirectFileOptions) => Observable<IDirectfileEvent>;
|
|
26
|
-
export declare type
|
|
26
|
+
export declare type IContentDecryptorClass = typeof ContentDecryptor;
|
|
27
27
|
export declare type IHTMLTextTracksBuffer = new (mediaElement: HTMLMediaElement, textTrackElement: HTMLElement) => SegmentBuffer;
|
|
28
28
|
export declare type INativeTextTracksBuffer = new (mediaElement: HTMLMediaElement, hideNativeSubtitle: boolean) => SegmentBuffer;
|
|
29
29
|
export declare type IMediaElementTrackChoiceManager = typeof MediaElementTrackChoiceManager;
|
|
@@ -53,7 +53,7 @@ export interface IFeaturesObject {
|
|
|
53
53
|
initDirectFile: IDirectFileInit;
|
|
54
54
|
mediaElementTrackChoiceManager: IMediaElementTrackChoiceManager;
|
|
55
55
|
} | null;
|
|
56
|
-
|
|
56
|
+
ContentDecryptor: IContentDecryptorClass | null;
|
|
57
57
|
htmlTextTracksBuffer: IHTMLTextTracksBuffer | null;
|
|
58
58
|
htmlTextTracksParsers: Partial<Record<string, IHTMLTextTracksParserFn>>;
|
|
59
59
|
imageBuffer: IImageBuffer | null;
|
|
@@ -82,8 +82,8 @@ export default class Adaptation {
|
|
|
82
82
|
* @param {Object|undefined} [options]
|
|
83
83
|
*/
|
|
84
84
|
constructor(parsedAdaptation: IParsedAdaptation, options?: {
|
|
85
|
-
representationFilter?: IRepresentationFilter;
|
|
86
|
-
isManuallyAdded?: boolean;
|
|
85
|
+
representationFilter?: IRepresentationFilter | undefined;
|
|
86
|
+
isManuallyAdded?: boolean | undefined;
|
|
87
87
|
});
|
|
88
88
|
/**
|
|
89
89
|
* Returns unique bitrate for every Representation in this Adaptation.
|
|
@@ -42,8 +42,10 @@ var Adaptation = /** @class */ (function () {
|
|
|
42
42
|
var trickModeTracks = parsedAdaptation.trickModeTracks;
|
|
43
43
|
var representationFilter = options.representationFilter, isManuallyAdded = options.isManuallyAdded;
|
|
44
44
|
this.id = parsedAdaptation.id;
|
|
45
|
-
this.isTrickModeTrack = parsedAdaptation.isTrickModeTrack;
|
|
46
45
|
this.type = parsedAdaptation.type;
|
|
46
|
+
if (parsedAdaptation.isTrickModeTrack !== undefined) {
|
|
47
|
+
this.isTrickModeTrack = parsedAdaptation.isTrickModeTrack;
|
|
48
|
+
}
|
|
47
49
|
if (parsedAdaptation.language !== undefined) {
|
|
48
50
|
this.language = parsedAdaptation.language;
|
|
49
51
|
this.normalizedLanguage = normalizeLanguage(parsedAdaptation.language);
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { IInitializationDataInfo } from "../core/eme";
|
|
17
16
|
import { ICustomError } from "../errors";
|
|
18
17
|
import { IParsedManifest } from "../parsers/manifest";
|
|
19
18
|
import EventEmitter from "../utils/event_emitter";
|
|
@@ -56,17 +55,17 @@ interface ISupplementaryTextTrack {
|
|
|
56
55
|
/** Options given to the `Manifest` constructor. */
|
|
57
56
|
interface IManifestParsingOptions {
|
|
58
57
|
/** Text tracks to add manually to the Manifest instance. */
|
|
59
|
-
supplementaryTextTracks?: ISupplementaryTextTrack[];
|
|
58
|
+
supplementaryTextTracks?: ISupplementaryTextTrack[] | undefined;
|
|
60
59
|
/** Image tracks to add manually to the Manifest instance. */
|
|
61
|
-
supplementaryImageTracks?: ISupplementaryImageTrack[];
|
|
60
|
+
supplementaryImageTracks?: ISupplementaryImageTrack[] | undefined;
|
|
62
61
|
/** External callback peforming an automatic filtering of wanted Representations. */
|
|
63
|
-
representationFilter?: IRepresentationFilter;
|
|
62
|
+
representationFilter?: IRepresentationFilter | undefined;
|
|
64
63
|
/** Optional URL that points to a shorter version of the Manifest used
|
|
65
64
|
* for updates only. When using this URL for refresh, the manifest will be
|
|
66
65
|
* updated with the partial update type. If this URL is undefined, then the
|
|
67
66
|
* manifest will be updated fully when it needs to be refreshed, and it will
|
|
68
67
|
* fetched through the original URL. */
|
|
69
|
-
manifestUpdateUrl?: string;
|
|
68
|
+
manifestUpdateUrl?: string | undefined;
|
|
70
69
|
}
|
|
71
70
|
/** Representation affected by a `decipherabilityUpdate` event. */
|
|
72
71
|
export interface IDecipherabilityUpdateElement {
|
|
@@ -154,34 +153,34 @@ export default class Manifest extends EventEmitter<IManifestEvents> {
|
|
|
154
153
|
uris: string[];
|
|
155
154
|
/** Optional URL that points to a shorter version of the Manifest used
|
|
156
155
|
* for updates only. */
|
|
157
|
-
updateUrl
|
|
156
|
+
updateUrl: string | undefined;
|
|
158
157
|
/**
|
|
159
158
|
* Suggested delay from the "live edge" (i.e. the position corresponding to
|
|
160
159
|
* the current broadcast for a live content) the content is suggested to start
|
|
161
160
|
* from.
|
|
162
161
|
* This only applies to live contents.
|
|
163
162
|
*/
|
|
164
|
-
suggestedPresentationDelay
|
|
163
|
+
suggestedPresentationDelay: number | undefined;
|
|
165
164
|
/**
|
|
166
165
|
* Amount of time, in seconds, this Manifest is valid from the time when it
|
|
167
166
|
* has been fetched.
|
|
168
167
|
* If no lifetime is set, this Manifest does not become invalid after an
|
|
169
168
|
* amount of time.
|
|
170
169
|
*/
|
|
171
|
-
lifetime
|
|
170
|
+
lifetime: number | undefined;
|
|
172
171
|
/**
|
|
173
172
|
* Minimum time, in seconds, at which a segment defined in the Manifest
|
|
174
173
|
* can begin.
|
|
175
174
|
* This is also used as an offset for live content to apply to a segment's
|
|
176
175
|
* time.
|
|
177
176
|
*/
|
|
178
|
-
availabilityStartTime
|
|
177
|
+
availabilityStartTime: number | undefined;
|
|
179
178
|
/**
|
|
180
179
|
* It specifies the wall-clock time when the manifest was generated and published
|
|
181
180
|
* at the origin server. It is present in order to identify different versions
|
|
182
181
|
* of manifest instances.
|
|
183
182
|
*/
|
|
184
|
-
publishTime
|
|
183
|
+
publishTime: number | undefined;
|
|
185
184
|
/**
|
|
186
185
|
* Array containing every minor errors that happened when the Manifest has
|
|
187
186
|
* been created, in the order they have happened.
|
|
@@ -271,19 +270,7 @@ export default class Manifest extends EventEmitter<IManifestEvents> {
|
|
|
271
270
|
* changes performed.
|
|
272
271
|
* @param {Object} keyUpdates
|
|
273
272
|
*/
|
|
274
|
-
|
|
275
|
-
whitelistedKeyIds: Uint8Array[];
|
|
276
|
-
blacklistedKeyIDs: Uint8Array[];
|
|
277
|
-
}): void;
|
|
278
|
-
/**
|
|
279
|
-
* Look in the Manifest for Representations linked to the given content
|
|
280
|
-
* protection initialization data and mark them as being impossible to
|
|
281
|
-
* decrypt.
|
|
282
|
-
* Then trigger a "decipherabilityUpdate" event to notify everyone of the
|
|
283
|
-
* changes performed.
|
|
284
|
-
* @param {Object} initData
|
|
285
|
-
*/
|
|
286
|
-
addUndecipherableProtectionData(initData: IInitializationDataInfo): void;
|
|
273
|
+
updateRepresentationsDeciperability(isDecipherableCb: (rep: Representation) => boolean | undefined): void;
|
|
287
274
|
/**
|
|
288
275
|
* @deprecated only returns adaptations for the first period
|
|
289
276
|
* @returns {Array.<Object>}
|
|
@@ -29,7 +29,6 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
29
29
|
};
|
|
30
30
|
})();
|
|
31
31
|
import { MediaError, } from "../errors";
|
|
32
|
-
import areArraysOfNumbersEqual from "../utils/are_arrays_of_numbers_equal";
|
|
33
32
|
import arrayFind from "../utils/array_find";
|
|
34
33
|
import EventEmitter from "../utils/event_emitter";
|
|
35
34
|
import idGenerator from "../utils/id_generator";
|
|
@@ -72,8 +71,9 @@ var Manifest = /** @class */ (function (_super) {
|
|
|
72
71
|
* @param {Object} options
|
|
73
72
|
*/
|
|
74
73
|
function Manifest(parsedManifest, options) {
|
|
74
|
+
var _this = this;
|
|
75
75
|
var _a;
|
|
76
|
-
|
|
76
|
+
_this = _super.call(this) || this;
|
|
77
77
|
var _b = options.supplementaryTextTracks, supplementaryTextTracks = _b === void 0 ? [] : _b, _c = options.supplementaryImageTracks, supplementaryImageTracks = _c === void 0 ? [] : _c, representationFilter = options.representationFilter, manifestUpdateUrl = options.manifestUpdateUrl;
|
|
78
78
|
_this.contentWarnings = [];
|
|
79
79
|
_this.id = generateNewManifestId();
|
|
@@ -234,70 +234,8 @@ var Manifest = /** @class */ (function (_super) {
|
|
|
234
234
|
* changes performed.
|
|
235
235
|
* @param {Object} keyUpdates
|
|
236
236
|
*/
|
|
237
|
-
Manifest.prototype.
|
|
238
|
-
var
|
|
239
|
-
var updates = updateDeciperability(this, function (representation) {
|
|
240
|
-
if (representation.decipherable === false ||
|
|
241
|
-
representation.contentProtections === undefined) {
|
|
242
|
-
return representation.decipherable;
|
|
243
|
-
}
|
|
244
|
-
var contentKIDs = representation.contentProtections.keyIds;
|
|
245
|
-
for (var i = 0; i < contentKIDs.length; i++) {
|
|
246
|
-
var elt = contentKIDs[i];
|
|
247
|
-
for (var j = 0; j < blacklistedKeyIDs.length; j++) {
|
|
248
|
-
if (areArraysOfNumbersEqual(blacklistedKeyIDs[j], elt.keyId)) {
|
|
249
|
-
return false;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
for (var j = 0; j < whitelistedKeyIds.length; j++) {
|
|
253
|
-
if (areArraysOfNumbersEqual(whitelistedKeyIds[j], elt.keyId)) {
|
|
254
|
-
return true;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
return representation.decipherable;
|
|
259
|
-
});
|
|
260
|
-
if (updates.length > 0) {
|
|
261
|
-
this.trigger("decipherabilityUpdate", updates);
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
/**
|
|
265
|
-
* Look in the Manifest for Representations linked to the given content
|
|
266
|
-
* protection initialization data and mark them as being impossible to
|
|
267
|
-
* decrypt.
|
|
268
|
-
* Then trigger a "decipherabilityUpdate" event to notify everyone of the
|
|
269
|
-
* changes performed.
|
|
270
|
-
* @param {Object} initData
|
|
271
|
-
*/
|
|
272
|
-
Manifest.prototype.addUndecipherableProtectionData = function (initData) {
|
|
273
|
-
var updates = updateDeciperability(this, function (representation) {
|
|
274
|
-
var _a, _b;
|
|
275
|
-
if (representation.decipherable === false) {
|
|
276
|
-
return false;
|
|
277
|
-
}
|
|
278
|
-
var segmentProtections = (_b = (_a = representation.contentProtections) === null || _a === void 0 ? void 0 : _a.initData) !== null && _b !== void 0 ? _b : [];
|
|
279
|
-
var _loop_1 = function (i) {
|
|
280
|
-
if (initData.type === undefined ||
|
|
281
|
-
segmentProtections[i].type === initData.type) {
|
|
282
|
-
var containedInitData = initData.values.every(function (undecipherableVal) {
|
|
283
|
-
return segmentProtections[i].values.some(function (currVal) {
|
|
284
|
-
return (undecipherableVal.systemId === undefined ||
|
|
285
|
-
currVal.systemId === undecipherableVal.systemId) &&
|
|
286
|
-
areArraysOfNumbersEqual(currVal.data, undecipherableVal.data);
|
|
287
|
-
});
|
|
288
|
-
});
|
|
289
|
-
if (containedInitData) {
|
|
290
|
-
return { value: false };
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
};
|
|
294
|
-
for (var i = 0; i < segmentProtections.length; i++) {
|
|
295
|
-
var state_1 = _loop_1(i);
|
|
296
|
-
if (typeof state_1 === "object")
|
|
297
|
-
return state_1.value;
|
|
298
|
-
}
|
|
299
|
-
return representation.decipherable;
|
|
300
|
-
});
|
|
237
|
+
Manifest.prototype.updateRepresentationsDeciperability = function (isDecipherableCb) {
|
|
238
|
+
var updates = updateDeciperability(this, isDecipherableCb);
|
|
301
239
|
if (updates.length > 0) {
|
|
302
240
|
this.trigger("decipherabilityUpdate", updates);
|
|
303
241
|
}
|
|
@@ -501,14 +439,12 @@ export default Manifest;
|
|
|
501
439
|
*/
|
|
502
440
|
function updateDeciperability(manifest, isDecipherable) {
|
|
503
441
|
var updates = [];
|
|
504
|
-
for (var
|
|
505
|
-
var period =
|
|
506
|
-
var
|
|
507
|
-
|
|
508
|
-
var
|
|
509
|
-
|
|
510
|
-
for (var k = 0; k < representations.length; k++) {
|
|
511
|
-
var representation = representations[k];
|
|
442
|
+
for (var _i = 0, _a = manifest.periods; _i < _a.length; _i++) {
|
|
443
|
+
var period = _a[_i];
|
|
444
|
+
for (var _b = 0, _c = period.getAdaptations(); _b < _c.length; _b++) {
|
|
445
|
+
var adaptation = _c[_b];
|
|
446
|
+
for (var _d = 0, _e = adaptation.representations; _d < _e.length; _d++) {
|
|
447
|
+
var representation = _e[_d];
|
|
512
448
|
var result = isDecipherable(representation);
|
|
513
449
|
if (result !== representation.decipherable) {
|
|
514
450
|
updates.push({ manifest: manifest, period: period, adaptation: adaptation, representation: representation });
|
|
@@ -35,12 +35,12 @@ export default class Period {
|
|
|
35
35
|
* Duration of this Period, in seconds.
|
|
36
36
|
* `undefined` for still-running Periods.
|
|
37
37
|
*/
|
|
38
|
-
duration
|
|
38
|
+
duration: number | undefined;
|
|
39
39
|
/**
|
|
40
40
|
* Absolute end time of the Period, in seconds.
|
|
41
41
|
* `undefined` for still-running Periods.
|
|
42
42
|
*/
|
|
43
|
-
end
|
|
43
|
+
end: number | undefined;
|
|
44
44
|
/**
|
|
45
45
|
* Array containing every errors that happened when the Period has been
|
|
46
46
|
* created, in the order they have happened.
|
|
@@ -53,7 +53,7 @@ export default class Period {
|
|
|
53
53
|
* @param {Object} args
|
|
54
54
|
* @param {function|undefined} [representationFilter]
|
|
55
55
|
*/
|
|
56
|
-
constructor(args: IParsedPeriod, representationFilter?: IRepresentationFilter);
|
|
56
|
+
constructor(args: IParsedPeriod, representationFilter?: IRepresentationFilter | undefined);
|
|
57
57
|
/**
|
|
58
58
|
* Returns every `Adaptations` (or `tracks`) linked to that Period, in an
|
|
59
59
|
* Array.
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { IContentProtection } from "../core/eme";
|
|
17
16
|
import { IContentProtections, IParsedRepresentation } from "../parsers/manifest";
|
|
18
17
|
import { IRepresentationIndex } from "./representation_index";
|
|
19
18
|
import { IAdaptationType, IHDRInformation } from "./types";
|
|
@@ -40,7 +39,7 @@ declare class Representation {
|
|
|
40
39
|
* A string describing the codec used for this Representation.
|
|
41
40
|
* undefined if we do not know.
|
|
42
41
|
*/
|
|
43
|
-
codec
|
|
42
|
+
codec: string | undefined;
|
|
44
43
|
/**
|
|
45
44
|
* A string describing the mime-type for this Representation.
|
|
46
45
|
* Examples: audio/mp4, video/webm, application/mp4, text/plain
|
|
@@ -72,7 +71,7 @@ declare class Representation {
|
|
|
72
71
|
* Representation
|
|
73
72
|
* - if `undefined` there is no certainty on this matter
|
|
74
73
|
*/
|
|
75
|
-
decipherable?: boolean;
|
|
74
|
+
decipherable?: boolean | undefined;
|
|
76
75
|
/** `true` if the Representation is in a supported codec, false otherwise. */
|
|
77
76
|
isSupported: boolean;
|
|
78
77
|
/**
|
|
@@ -107,7 +106,7 @@ declare class Representation {
|
|
|
107
106
|
* @param {string} drmSystemId - The hexa-encoded DRM system ID
|
|
108
107
|
* @returns {Array.<Object>}
|
|
109
108
|
*/
|
|
110
|
-
getEncryptionData(drmSystemId: string):
|
|
109
|
+
getEncryptionData(drmSystemId: string): IRepresentationProtectionData[];
|
|
111
110
|
/**
|
|
112
111
|
* Returns all currently-known encryption initialization data linked to this
|
|
113
112
|
* Representation.
|
|
@@ -134,7 +133,7 @@ declare class Representation {
|
|
|
134
133
|
* after parsing this Representation's initialization segment, if one exists.
|
|
135
134
|
* @returns {Array.<Object>}
|
|
136
135
|
*/
|
|
137
|
-
getAllEncryptionData():
|
|
136
|
+
getAllEncryptionData(): IRepresentationProtectionData[];
|
|
138
137
|
/**
|
|
139
138
|
* Add new encryption initialization data to this Representation if it was not
|
|
140
139
|
* already included.
|
|
@@ -156,4 +155,37 @@ declare class Representation {
|
|
|
156
155
|
data: Uint8Array;
|
|
157
156
|
}>): boolean;
|
|
158
157
|
}
|
|
158
|
+
/** Protection data as returned by a Representation. */
|
|
159
|
+
export interface IRepresentationProtectionData {
|
|
160
|
+
/**
|
|
161
|
+
* Initialization data type.
|
|
162
|
+
* String describing the format of the initialization data sent through this
|
|
163
|
+
* event.
|
|
164
|
+
* https://www.w3.org/TR/eme-initdata-registry/
|
|
165
|
+
*/
|
|
166
|
+
type: string;
|
|
167
|
+
/**
|
|
168
|
+
* The key ids linked to those initialization data.
|
|
169
|
+
* This should be the key ids for the key concerned by the media which have
|
|
170
|
+
* the present initialization data.
|
|
171
|
+
*
|
|
172
|
+
* `undefined` when not known (different from an empty array - which would
|
|
173
|
+
* just mean that there's no key id involved).
|
|
174
|
+
*/
|
|
175
|
+
keyIds: Uint8Array[] | undefined;
|
|
176
|
+
/** Every initialization data for that type. */
|
|
177
|
+
values: Array<{
|
|
178
|
+
/**
|
|
179
|
+
* Hex encoded system id, which identifies the key system.
|
|
180
|
+
* https://dashif.org/identifiers/content_protection/
|
|
181
|
+
*/
|
|
182
|
+
systemId: string;
|
|
183
|
+
/**
|
|
184
|
+
* The initialization data itself for that type and systemId.
|
|
185
|
+
* For example, with "cenc" initialization data found in an ISOBMFF file,
|
|
186
|
+
* this will be the whole PSSH box.
|
|
187
|
+
*/
|
|
188
|
+
data: Uint8Array;
|
|
189
|
+
}>;
|
|
190
|
+
}
|
|
159
191
|
export default Representation;
|
|
@@ -28,14 +28,14 @@ export interface ISmoothInitSegmentPrivateInfos {
|
|
|
28
28
|
* as found in the Manifest.
|
|
29
29
|
*/
|
|
30
30
|
timescale: number;
|
|
31
|
-
codecPrivateData?: string;
|
|
32
|
-
bitsPerSample?: number;
|
|
33
|
-
channels?: number;
|
|
34
|
-
packetSize?: number;
|
|
35
|
-
samplingRate?: number;
|
|
31
|
+
codecPrivateData?: string | undefined;
|
|
32
|
+
bitsPerSample?: number | undefined;
|
|
33
|
+
channels?: number | undefined;
|
|
34
|
+
packetSize?: number | undefined;
|
|
35
|
+
samplingRate?: number | undefined;
|
|
36
36
|
protection?: {
|
|
37
37
|
keyId: Uint8Array;
|
|
38
|
-
};
|
|
38
|
+
} | undefined;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Supplementary information specific to Smooth media segments (that is, every
|
|
@@ -69,7 +69,7 @@ export interface IMetaPlaylistPrivateInfos {
|
|
|
69
69
|
/** The segment originally created by this transport's RepresentationIndex. */
|
|
70
70
|
originalSegment: ISegment;
|
|
71
71
|
contentStart: number;
|
|
72
|
-
contentEnd?: number;
|
|
72
|
+
contentEnd?: number | undefined;
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* Supplementary information needed for initialization segments of the "local"
|
|
@@ -99,12 +99,12 @@ export interface ILocalManifestSegmentPrivateInfos {
|
|
|
99
99
|
* exploited by the corresponding transport logic.
|
|
100
100
|
*/
|
|
101
101
|
export interface IPrivateInfos {
|
|
102
|
-
smoothInitSegment?: ISmoothInitSegmentPrivateInfos;
|
|
103
|
-
smoothMediaSegment?: ISmoothSegmentPrivateInfos;
|
|
104
|
-
metaplaylistInfos?: IMetaPlaylistPrivateInfos;
|
|
105
|
-
localManifestInitSegment?: ILocalManifestInitSegmentPrivateInfos;
|
|
106
|
-
localManifestSegment?: ILocalManifestSegmentPrivateInfos;
|
|
107
|
-
isEMSGWhitelisted?: (evt: IEMSG) => boolean;
|
|
102
|
+
smoothInitSegment?: ISmoothInitSegmentPrivateInfos | undefined;
|
|
103
|
+
smoothMediaSegment?: ISmoothSegmentPrivateInfos | undefined;
|
|
104
|
+
metaplaylistInfos?: IMetaPlaylistPrivateInfos | undefined;
|
|
105
|
+
localManifestInitSegment?: ILocalManifestInitSegmentPrivateInfos | undefined;
|
|
106
|
+
localManifestSegment?: ILocalManifestSegmentPrivateInfos | undefined;
|
|
107
|
+
isEMSGWhitelisted?: ((evt: IEMSG) => boolean) | undefined;
|
|
108
108
|
}
|
|
109
109
|
/** Represent a single Segment from a Representation. */
|
|
110
110
|
export interface ISegment {
|
|
@@ -135,24 +135,24 @@ export interface ISegment {
|
|
|
135
135
|
* contain an index describing other Segments
|
|
136
136
|
* TODO put in privateInfos?
|
|
137
137
|
*/
|
|
138
|
-
indexRange?: [number, number];
|
|
138
|
+
indexRange?: [number, number] | undefined;
|
|
139
139
|
/**
|
|
140
140
|
* Optional number of the Segment
|
|
141
141
|
* TODO put in privateInfos?
|
|
142
142
|
*/
|
|
143
|
-
number?: number;
|
|
143
|
+
number?: number | undefined;
|
|
144
144
|
/**
|
|
145
145
|
* Allows to store supplementary information on a segment that can be later
|
|
146
146
|
* exploited by the transport logic.
|
|
147
147
|
*/
|
|
148
|
-
privateInfos?: IPrivateInfos;
|
|
148
|
+
privateInfos?: IPrivateInfos | undefined;
|
|
149
149
|
/** Optional byte range to retrieve the Segment from its URL(s) */
|
|
150
|
-
range?: [number, number];
|
|
150
|
+
range?: [number, number] | undefined;
|
|
151
151
|
/**
|
|
152
152
|
* Estimated time, in seconds, at which the concerned segment should be
|
|
153
153
|
* offseted when decoded.
|
|
154
154
|
*/
|
|
155
|
-
timestampOffset?: number;
|
|
155
|
+
timestampOffset?: number | undefined;
|
|
156
156
|
/**
|
|
157
157
|
* Estimated start time for the segment, in seconds.
|
|
158
158
|
* Note that some rounding errors and some differences between what the
|