rx-player 3.26.3-dev.2022021400 → 3.27.0-dev.2022032100
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/.eslintrc.js +0 -4
- package/CHANGELOG.md +17 -2
- 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 +143 -36
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.d.ts +15 -0
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +1 -17
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +6 -7
- 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 +20 -22
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +58 -40
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +49 -48
- 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 +67 -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/network_analyzer.js +2 -1
- 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.js +2 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +6 -3
- package/dist/_esm5.processed/core/api/option_utils.js +21 -7
- 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 +73 -35
- package/dist/_esm5.processed/core/{eme → decrypt}/__tests__/__global__/utils.d.ts +7 -49
- package/dist/_esm5.processed/core/{eme → decrypt}/__tests__/__global__/utils.js +25 -65
- package/dist/_esm5.processed/core/{eme → decrypt}/attach_media_keys.d.ts +12 -12
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +103 -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 +40 -0
- package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +216 -0
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +865 -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 +173 -0
- package/dist/_esm5.processed/core/{eme/dispose_media_keys.d.ts → decrypt/dispose_decryption_resources.d.ts} +4 -4
- 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 +299 -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 +119 -241
- 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 +84 -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 +302 -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.js +3 -5
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +1 -1
- 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 +2 -3
- package/dist/_esm5.processed/core/init/get_initial_time.js +1 -1
- package/dist/_esm5.processed/core/init/initialize_directfile.d.ts +1 -1
- package/dist/_esm5.processed/core/init/initialize_directfile.js +11 -17
- package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +6 -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.js +2 -1
- package/dist/_esm5.processed/core/init/stall_avoider.js +1 -1
- package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.js +1 -1
- 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.js +3 -1
- 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/index.d.ts +1 -0
- 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.d.ts +15 -11
- package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.js +6 -3
- package/dist/_esm5.processed/core/stream/period/index.d.ts +1 -0
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +5 -12
- package/dist/_esm5.processed/core/stream/period/period_stream.js +3 -3
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +2 -2
- 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/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.js +6 -7
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +15 -0
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +3 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +3 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -2
- 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/manifest.d.ts +1 -14
- package/dist/_esm5.processed/manifest/manifest.js +10 -74
- package/dist/_esm5.processed/manifest/representation.d.ts +35 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/is_period_fulfilled.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +87 -75
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +4 -5
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +1 -0
- package/dist/_esm5.processed/public_types.d.ts +3 -2
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +1 -2
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +4 -3
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +60 -11
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +1 -2
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -3
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/segment_loader.js +3 -4
- package/dist/_esm5.processed/transports/dash/segment_parser.js +6 -3
- package/dist/_esm5.processed/transports/dash/text_loader.js +1 -2
- package/dist/_esm5.processed/transports/dash/text_parser.js +8 -2
- package/dist/_esm5.processed/transports/local/segment_loader.js +2 -3
- 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/pipelines.js +2 -3
- package/dist/_esm5.processed/transports/smooth/pipelines.js +71 -14
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +3 -4
- package/dist/_esm5.processed/transports/types.d.ts +22 -0
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +1 -2
- package/dist/_esm5.processed/utils/cancellable_sleep.js +1 -2
- package/dist/_esm5.processed/utils/cast_to_observable.js +1 -3
- 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.js +1 -2
- package/dist/_esm5.processed/utils/request/xhr.js +2 -3
- 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 +4936 -3340
- package/dist/rx-player.min.js +1 -1
- package/dummy +1 -0
- package/{dist/_esm5.processed/utils/promise.d.ts → experimental/index.d.ts} +1 -2
- package/{dist/_esm5.processed/utils/promise.js → experimental/index.js} +1 -3
- package/package.json +32 -35
- package/{src/typings/pinkie.d.ts → scripts/build/templates/experimental/index.d.ts} +1 -4
- package/scripts/build/templates/experimental/index.js +16 -0
- package/scripts/update-version +2 -2
- package/sonar-project.properties +1 -1
- package/src/README.md +6 -6
- package/src/compat/__tests__/play.test.ts +2 -4
- 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 +89 -56
- package/src/compat/eme/custom_key_system_access.ts +1 -2
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +6 -7
- package/src/compat/eme/custom_media_keys/index.ts +20 -38
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +68 -52
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +57 -56
- package/src/compat/eme/generate_key_request.ts +25 -33
- package/src/compat/eme/load_session.ts +28 -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/bandwidth_estimator.ts +4 -4
- package/src/core/abr/network_analyzer.ts +5 -6
- package/src/core/api/__tests__/get_player_state.test.ts +3 -3
- package/src/core/api/__tests__/option_utils.test.ts +29 -17
- package/src/core/api/get_player_state.ts +1 -1
- package/src/core/api/index.ts +3 -0
- package/src/core/api/option_utils.ts +42 -23
- package/src/core/api/playback_observer.ts +12 -8
- package/src/core/api/public_api.ts +152 -113
- 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 +31 -93
- package/src/core/{eme → decrypt}/attach_media_keys.ts +48 -56
- package/src/core/decrypt/clear_on_stop.ts +47 -0
- package/src/core/decrypt/content_decryptor.ts +1157 -0
- package/src/core/decrypt/create_or_load_session.ts +130 -0
- package/src/core/decrypt/create_session.ts +174 -0
- package/src/core/decrypt/dispose_decryption_resources.ts +39 -0
- package/src/core/{eme → decrypt}/find_key_system.ts +111 -122
- 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 +128 -258
- 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} +19 -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 +317 -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 +5 -7
- package/src/core/fetchers/segment/segment_fetcher.ts +4 -4
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +2 -2
- package/src/core/fetchers/utils/try_urls_with_backoff.ts +2 -3
- 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 +17 -20
- package/src/core/init/initialize_media_source.ts +44 -106
- package/src/core/init/link_drm_and_content.ts +176 -0
- package/src/core/init/manifest_update_scheduler.ts +5 -3
- package/src/core/init/stall_avoider.ts +6 -5
- package/src/core/init/stream_events_emitter/stream_events_emitter.ts +2 -1
- 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 +3 -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/index.ts +1 -0
- 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 +25 -15
- package/src/core/stream/period/index.ts +1 -0
- package/src/core/stream/period/period_stream.ts +10 -16
- package/src/core/stream/representation/force_garbage_collection.ts +2 -2
- 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/experimental/index.ts +5 -0
- package/src/experimental/tools/VideoThumbnailLoader/push_data.ts +1 -0
- package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +7 -7
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +3 -10
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +9 -10
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +2 -4
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +2 -3
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +3 -5
- package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +3 -5
- package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +1 -2
- 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/manifest.ts +6 -76
- package/src/manifest/representation.ts +36 -3
- package/src/parsers/manifest/dash/common/indexes/is_period_fulfilled.ts +1 -2
- package/src/parsers/manifest/dash/common/indexes/template.ts +1 -2
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +1 -1
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +109 -64
- package/src/parsers/manifest/dash/common/parse_mpd.ts +1 -2
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +4 -5
- package/src/parsers/manifest/smooth/create_parser.ts +1 -0
- package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +1 -0
- package/src/public_types.ts +6 -1
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +1 -2
- package/src/transports/dash/image_pipelines.ts +15 -14
- package/src/transports/dash/init_segment_loader.ts +1 -2
- package/src/transports/dash/manifest_parser.ts +2 -3
- package/src/transports/dash/segment_loader.ts +4 -5
- package/src/transports/dash/segment_parser.ts +5 -0
- package/src/transports/dash/text_loader.ts +2 -3
- package/src/transports/dash/text_parser.ts +8 -0
- package/src/transports/local/segment_loader.ts +2 -3
- package/src/transports/local/segment_parser.ts +4 -0
- package/src/transports/local/text_parser.ts +8 -0
- package/src/transports/metaplaylist/pipelines.ts +2 -3
- package/src/transports/smooth/pipelines.ts +26 -14
- package/src/transports/smooth/segment_loader.ts +5 -6
- package/src/transports/types.ts +22 -0
- package/src/transports/utils/call_custom_manifest_loader.ts +1 -2
- package/src/utils/__tests__/deep_merge.test.ts +48 -0
- package/src/utils/cancellable_sleep.ts +1 -2
- package/src/utils/cast_to_observable.ts +0 -2
- package/src/utils/deep_merge.ts +46 -0
- package/src/utils/reference.ts +116 -23
- package/src/utils/request/fetch.ts +1 -2
- package/src/utils/request/xhr.ts +3 -3
- package/src/utils/rx-from_cancellable_promise.ts +7 -2
- package/src/utils/task_canceller.ts +6 -4
- package/tsconfig.json +0 -1
- package/tsconfig.modules.json +0 -1
- 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.d.ts +0 -19
- 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 -253
- 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/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
- package/src/utils/__tests__/promise.test.ts +0 -23
- package/src/utils/promise.ts +0 -20
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import log from "../../../../log";
|
|
17
|
+
import { SUPPORTED_ADAPTATIONS_TYPE, } from "../../../../manifest";
|
|
17
18
|
import arrayFind from "../../../../utils/array_find";
|
|
19
|
+
import arrayFindIndex from "../../../../utils/array_find_index";
|
|
18
20
|
import arrayIncludes from "../../../../utils/array_includes";
|
|
19
21
|
import isNonEmptyString from "../../../../utils/is_non_empty_string";
|
|
20
22
|
import attachTrickModeTrack from "./attach_trickmode_track";
|
|
@@ -142,29 +144,24 @@ function getAdaptationSetSwitchingIDs(adaptation) {
|
|
|
142
144
|
*/
|
|
143
145
|
export default function parseAdaptationSets(adaptationsIR, context) {
|
|
144
146
|
var _a;
|
|
145
|
-
var _b, _c, _d, _e, _f, _g, _h;
|
|
146
|
-
var parsedAdaptations = {
|
|
147
|
+
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
148
|
+
var parsedAdaptations = { video: [],
|
|
149
|
+
audio: [],
|
|
150
|
+
text: [],
|
|
151
|
+
image: [] };
|
|
147
152
|
var trickModeAdaptations = [];
|
|
148
153
|
var adaptationSwitchingInfos = {};
|
|
149
154
|
var parsedAdaptationsIDs = [];
|
|
150
155
|
/**
|
|
151
|
-
* Index of the last parsed AdaptationSet with a Role set as "main" in
|
|
152
|
-
* `parsedAdaptations
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
+
* Index of the last parsed Video AdaptationSet with a Role set as "main" in
|
|
157
|
+
* `parsedAdaptations.video`.
|
|
158
|
+
* `-1` if not yet encountered.
|
|
159
|
+
* Used as we merge all main video AdaptationSet due to a comprehension of the
|
|
160
|
+
* DASH-IF IOP.
|
|
156
161
|
*/
|
|
157
|
-
var
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
var _a, _b;
|
|
161
|
-
/* As of DASH-IF 4.3, `1` is the default value. */
|
|
162
|
-
var priority1 = (_a = a.attributes.selectionPriority) !== null && _a !== void 0 ? _a : 1;
|
|
163
|
-
var priority2 = (_b = b.attributes.selectionPriority) !== null && _b !== void 0 ? _b : 1;
|
|
164
|
-
return priority2 - priority1;
|
|
165
|
-
});
|
|
166
|
-
for (var _i = 0, adaptationsIR_1 = adaptationsIR; _i < adaptationsIR_1.length; _i++) {
|
|
167
|
-
var adaptation = adaptationsIR_1[_i];
|
|
162
|
+
var lastMainVideoAdapIdx = -1;
|
|
163
|
+
for (var adaptationIdx = 0; adaptationIdx < adaptationsIR.length; adaptationIdx++) {
|
|
164
|
+
var adaptation = adaptationsIR[adaptationIdx];
|
|
168
165
|
var adaptationChildren = adaptation.children;
|
|
169
166
|
var essentialProperties = adaptationChildren.essentialProperties, roles = adaptationChildren.roles;
|
|
170
167
|
var isMainAdaptation = Array.isArray(roles) &&
|
|
@@ -186,6 +183,7 @@ export default function parseAdaptationSets(adaptationsIR, context) {
|
|
|
186
183
|
if (type === undefined) {
|
|
187
184
|
continue;
|
|
188
185
|
}
|
|
186
|
+
var priority = (_d = adaptation.attributes.selectionPriority) !== null && _d !== void 0 ? _d : 1;
|
|
189
187
|
var originalID = adaptation.attributes.id;
|
|
190
188
|
var newID = void 0;
|
|
191
189
|
var adaptationSetSwitchingIDs = getAdaptationSetSwitchingIDs(adaptation);
|
|
@@ -216,19 +214,16 @@ export default function parseAdaptationSets(adaptationsIR, context) {
|
|
|
216
214
|
arrayFind(essentialProperties, function (scheme) {
|
|
217
215
|
return scheme.schemeIdUri === "http://dashif.org/guidelines/trickmode";
|
|
218
216
|
}) : undefined;
|
|
219
|
-
var trickModeAttachedAdaptationIds = (
|
|
217
|
+
var trickModeAttachedAdaptationIds = (_e = trickModeProperty === null || trickModeProperty === void 0 ? void 0 : trickModeProperty.value) === null || _e === void 0 ? void 0 : _e.split(" ");
|
|
220
218
|
var isTrickModeTrack = trickModeAttachedAdaptationIds !== undefined;
|
|
221
219
|
if (type === "video" &&
|
|
222
220
|
isMainAdaptation &&
|
|
223
|
-
|
|
224
|
-
parsedAdaptations.video.length >
|
|
225
|
-
lastMainAdaptationIndex.video !== undefined &&
|
|
221
|
+
lastMainVideoAdapIdx >= 0 &&
|
|
222
|
+
parsedAdaptations.video.length > lastMainVideoAdapIdx &&
|
|
226
223
|
!isTrickModeTrack) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
reprCtxt.unsafelyBaseOnPreviousAdaptation = (_f = (_e = context
|
|
231
|
-
.unsafelyBaseOnPreviousPeriod) === null || _e === void 0 ? void 0 : _e.getAdaptation(videoMainAdaptation.id)) !== null && _f !== void 0 ? _f : null;
|
|
224
|
+
var videoMainAdaptation = parsedAdaptations.video[lastMainVideoAdapIdx][0];
|
|
225
|
+
reprCtxt.unsafelyBaseOnPreviousAdaptation = (_g = (_f = context
|
|
226
|
+
.unsafelyBaseOnPreviousPeriod) === null || _f === void 0 ? void 0 : _f.getAdaptation(videoMainAdaptation.id)) !== null && _g !== void 0 ? _g : null;
|
|
232
227
|
var representations = parseRepresentations(representationsIR, adaptation, reprCtxt);
|
|
233
228
|
(_a = videoMainAdaptation.representations).push.apply(_a, representations);
|
|
234
229
|
newID = videoMainAdaptation.id;
|
|
@@ -268,8 +263,8 @@ export default function parseAdaptationSets(adaptationsIR, context) {
|
|
|
268
263
|
}
|
|
269
264
|
newID = adaptationID;
|
|
270
265
|
parsedAdaptationsIDs.push(adaptationID);
|
|
271
|
-
reprCtxt.unsafelyBaseOnPreviousAdaptation = (
|
|
272
|
-
.unsafelyBaseOnPreviousPeriod) === null ||
|
|
266
|
+
reprCtxt.unsafelyBaseOnPreviousAdaptation = (_j = (_h = context
|
|
267
|
+
.unsafelyBaseOnPreviousPeriod) === null || _h === void 0 ? void 0 : _h.getAdaptation(adaptationID)) !== null && _j !== void 0 ? _j : null;
|
|
273
268
|
var representations = parseRepresentations(representationsIR, adaptation, reprCtxt);
|
|
274
269
|
var parsedAdaptationSet = { id: adaptationID, representations: representations, type: type, isTrickModeTrack: isTrickModeTrack };
|
|
275
270
|
if (adaptation.attributes.language != null) {
|
|
@@ -287,75 +282,92 @@ export default function parseAdaptationSets(adaptationsIR, context) {
|
|
|
287
282
|
if (isSignInterpreted === true) {
|
|
288
283
|
parsedAdaptationSet.isSignInterpreted = true;
|
|
289
284
|
}
|
|
290
|
-
var adaptationsOfTheSameType = parsedAdaptations[type];
|
|
291
285
|
if (trickModeAttachedAdaptationIds !== undefined) {
|
|
292
286
|
trickModeAdaptations.push({ adaptation: parsedAdaptationSet, trickModeAttachedAdaptationIds: trickModeAttachedAdaptationIds });
|
|
293
287
|
}
|
|
294
|
-
else if (adaptationsOfTheSameType === undefined) {
|
|
295
|
-
parsedAdaptations[type] = [parsedAdaptationSet];
|
|
296
|
-
if (isMainAdaptation) {
|
|
297
|
-
lastMainAdaptationIndex[type] = 0;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
288
|
else {
|
|
301
|
-
|
|
289
|
+
// look if we have to merge this into another Adaptation
|
|
290
|
+
var mergedIntoIdx = -1;
|
|
302
291
|
var _loop_1 = function (id) {
|
|
303
292
|
var _k;
|
|
304
293
|
var switchingInfos = adaptationSwitchingInfos[id];
|
|
305
|
-
if (switchingInfos
|
|
294
|
+
if (switchingInfos !== undefined &&
|
|
306
295
|
switchingInfos.newID !== newID &&
|
|
307
296
|
arrayIncludes(switchingInfos.adaptationSetSwitchingIDs, originalID)) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
297
|
+
mergedIntoIdx = arrayFindIndex(parsedAdaptations[type], function (a) { return a[0].id === id; });
|
|
298
|
+
var mergedInto = parsedAdaptations[type][mergedIntoIdx];
|
|
299
|
+
if (mergedInto !== undefined &&
|
|
300
|
+
mergedInto[0].audioDescription ===
|
|
311
301
|
parsedAdaptationSet.audioDescription &&
|
|
312
|
-
|
|
302
|
+
mergedInto[0].closedCaption ===
|
|
313
303
|
parsedAdaptationSet.closedCaption &&
|
|
314
|
-
|
|
304
|
+
mergedInto[0].language === parsedAdaptationSet.language) {
|
|
315
305
|
log.info("DASH Parser: merging \"switchable\" AdaptationSets", originalID, id);
|
|
316
|
-
(_k =
|
|
317
|
-
|
|
318
|
-
|
|
306
|
+
(_k = mergedInto[0].representations).push.apply(_k, parsedAdaptationSet.representations);
|
|
307
|
+
if (type === "video" &&
|
|
308
|
+
isMainAdaptation &&
|
|
309
|
+
!mergedInto[1].isMainAdaptation) {
|
|
310
|
+
lastMainVideoAdapIdx = Math.max(lastMainVideoAdapIdx, mergedIntoIdx);
|
|
311
|
+
}
|
|
312
|
+
mergedInto[1] = {
|
|
313
|
+
priority: Math.max(priority, mergedInto[1].priority),
|
|
314
|
+
isMainAdaptation: isMainAdaptation ||
|
|
315
|
+
mergedInto[1].isMainAdaptation,
|
|
316
|
+
indexInMpd: Math.min(adaptationIdx, mergedInto[1].indexInMpd),
|
|
317
|
+
};
|
|
319
318
|
}
|
|
320
319
|
}
|
|
321
320
|
};
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
var id = adaptationSetSwitchingIDs_1[_j];
|
|
321
|
+
for (var _i = 0, adaptationSetSwitchingIDs_1 = adaptationSetSwitchingIDs; _i < adaptationSetSwitchingIDs_1.length; _i++) {
|
|
322
|
+
var id = adaptationSetSwitchingIDs_1[_i];
|
|
325
323
|
_loop_1(id);
|
|
326
324
|
}
|
|
327
|
-
if (
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
// put "main" Adaptation after all other Main Adaptations
|
|
333
|
-
adaptationsOfTheSameType.splice(newLastMainIdx, 0, parsedAdaptationSet);
|
|
334
|
-
lastMainAdaptationIndex[type] = newLastMainIdx;
|
|
335
|
-
}
|
|
336
|
-
else {
|
|
337
|
-
var indexOf = adaptationsOfTheSameType.indexOf(mergedInto);
|
|
338
|
-
if (indexOf < 0) { // Weird, not found
|
|
339
|
-
adaptationsOfTheSameType.splice(newLastMainIdx, 0, parsedAdaptationSet);
|
|
340
|
-
lastMainAdaptationIndex[type] = newLastMainIdx;
|
|
341
|
-
}
|
|
342
|
-
else if (oldLastMainIdx === undefined || indexOf > oldLastMainIdx) {
|
|
343
|
-
// Found but was not main
|
|
344
|
-
adaptationsOfTheSameType.splice(indexOf, 1);
|
|
345
|
-
adaptationsOfTheSameType.splice(newLastMainIdx, 0, mergedInto);
|
|
346
|
-
lastMainAdaptationIndex[type] = newLastMainIdx;
|
|
347
|
-
}
|
|
325
|
+
if (mergedIntoIdx < 0) {
|
|
326
|
+
parsedAdaptations[type].push([parsedAdaptationSet,
|
|
327
|
+
{ priority: priority, isMainAdaptation: isMainAdaptation, indexInMpd: adaptationIdx }]);
|
|
328
|
+
if (type === "video" && isMainAdaptation) {
|
|
329
|
+
lastMainVideoAdapIdx = parsedAdaptations.video.length - 1;
|
|
348
330
|
}
|
|
349
331
|
}
|
|
350
|
-
else if (mergedInto === null) {
|
|
351
|
-
adaptationsOfTheSameType.push(parsedAdaptationSet);
|
|
352
|
-
}
|
|
353
332
|
}
|
|
354
333
|
}
|
|
355
334
|
if (originalID != null && adaptationSwitchingInfos[originalID] == null) {
|
|
356
335
|
adaptationSwitchingInfos[originalID] = { newID: newID, adaptationSetSwitchingIDs: adaptationSetSwitchingIDs };
|
|
357
336
|
}
|
|
358
337
|
}
|
|
359
|
-
|
|
360
|
-
|
|
338
|
+
var adaptationsPerType = SUPPORTED_ADAPTATIONS_TYPE
|
|
339
|
+
.reduce(function (acc, adaptationType) {
|
|
340
|
+
var adaptationsParsedForType = parsedAdaptations[adaptationType];
|
|
341
|
+
if (adaptationsParsedForType.length > 0) {
|
|
342
|
+
adaptationsParsedForType.sort(compareAdaptations);
|
|
343
|
+
acc[adaptationType] = adaptationsParsedForType
|
|
344
|
+
.map(function (_a) {
|
|
345
|
+
var parsedAdaptation = _a[0];
|
|
346
|
+
return parsedAdaptation;
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
return acc;
|
|
350
|
+
}, {});
|
|
351
|
+
parsedAdaptations.video.sort(compareAdaptations);
|
|
352
|
+
attachTrickModeTrack(adaptationsPerType, trickModeAdaptations);
|
|
353
|
+
return adaptationsPerType;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Compare groups of parsed AdaptationSet, alongside some ordering metadata,
|
|
357
|
+
* allowing to easily sort them through JavaScript's `Array.prototype.sort`
|
|
358
|
+
* method.
|
|
359
|
+
* @param {Array.<Object>} a
|
|
360
|
+
* @param {Array.<Object>} b
|
|
361
|
+
* @returns {number}
|
|
362
|
+
*/
|
|
363
|
+
function compareAdaptations(a, b) {
|
|
364
|
+
var priorityDiff = b[1].priority - a[1].priority;
|
|
365
|
+
if (priorityDiff !== 0) {
|
|
366
|
+
return priorityDiff;
|
|
367
|
+
}
|
|
368
|
+
if (a[1].isMainAdaptation !== b[1].isMainAdaptation) {
|
|
369
|
+
return a[1].isMainAdaptation ? -1 :
|
|
370
|
+
1;
|
|
371
|
+
}
|
|
372
|
+
return a[1].indexInMpd - b[1].indexInMpd;
|
|
361
373
|
}
|
|
@@ -33,7 +33,6 @@ import getMinimumAndMaximumPosition from "./get_minimum_and_maximum_positions";
|
|
|
33
33
|
import parseAvailabilityStartTime from "./parse_availability_start_time";
|
|
34
34
|
import parsePeriods from "./parse_periods";
|
|
35
35
|
import resolveBaseURLs from "./resolve_base_urls";
|
|
36
|
-
var DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0 = config.DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0;
|
|
37
36
|
/**
|
|
38
37
|
* Checks if xlinks needs to be loaded before actually parsing the manifest.
|
|
39
38
|
* @param {Object} mpdIR
|
|
@@ -157,7 +156,7 @@ function parseCompleteIntermediateRepresentation(mpdIR, args, warnings, xlinkInf
|
|
|
157
156
|
if (rootAttributes.minimumUpdatePeriod !== undefined &&
|
|
158
157
|
rootAttributes.minimumUpdatePeriod >= 0) {
|
|
159
158
|
lifetime = rootAttributes.minimumUpdatePeriod === 0 ?
|
|
160
|
-
DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0 :
|
|
159
|
+
config.getCurrent().DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0 :
|
|
161
160
|
rootAttributes.minimumUpdatePeriod;
|
|
162
161
|
}
|
|
163
162
|
var _d = getMinimumAndMaximumPosition(parsedPeriods), contentStart = _d[0], contentEnd = _d[1];
|
|
@@ -52,7 +52,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
52
52
|
import log from "../../../../../log";
|
|
53
53
|
import assertUnreachable from "../../../../../utils/assert_unreachable";
|
|
54
54
|
import noop from "../../../../../utils/noop";
|
|
55
|
-
import PPromise from "../../../../../utils/promise";
|
|
56
55
|
import parseMpdIr from "../../common";
|
|
57
56
|
import { generateRootChildrenParser } from "./generators";
|
|
58
57
|
import { generateXLinkChildrenParser } from "./generators/XLink";
|
|
@@ -86,7 +85,7 @@ var DashWasmParser = /** @class */ (function () {
|
|
|
86
85
|
*/
|
|
87
86
|
DashWasmParser.prototype.waitForInitialization = function () {
|
|
88
87
|
var _a;
|
|
89
|
-
return (_a = this._initProm) !== null && _a !== void 0 ? _a :
|
|
88
|
+
return (_a = this._initProm) !== null && _a !== void 0 ? _a : Promise.reject("No initialization performed yet.");
|
|
90
89
|
};
|
|
91
90
|
DashWasmParser.prototype.initialize = function (opts) {
|
|
92
91
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -175,11 +174,11 @@ var DashWasmParser = /** @class */ (function () {
|
|
|
175
174
|
var _this = this;
|
|
176
175
|
return __generator(this, function (_a) {
|
|
177
176
|
if (this.status !== "uninitialized") {
|
|
178
|
-
return [2 /*return*/,
|
|
177
|
+
return [2 /*return*/, Promise.reject(new Error("DashWasmParser already initialized."))];
|
|
179
178
|
}
|
|
180
179
|
else if (!this.isCompatible()) {
|
|
181
180
|
this.status = "failure";
|
|
182
|
-
return [2 /*return*/,
|
|
181
|
+
return [2 /*return*/, Promise.reject(new Error("Target not compatible with WebAssembly."))];
|
|
183
182
|
}
|
|
184
183
|
this.status = "initializing";
|
|
185
184
|
parsersStack = this._parsersStack;
|
|
@@ -201,7 +200,7 @@ var DashWasmParser = /** @class */ (function () {
|
|
|
201
200
|
fetchedWasm = fetch(opts.wasmUrl);
|
|
202
201
|
streamingProm = typeof WebAssembly.instantiateStreaming === "function" ?
|
|
203
202
|
WebAssembly.instantiateStreaming(fetchedWasm, imports) :
|
|
204
|
-
|
|
203
|
+
Promise.reject("`WebAssembly.instantiateStreaming` API not available");
|
|
205
204
|
this._initProm = streamingProm
|
|
206
205
|
.catch(function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
207
206
|
var res, resAb;
|
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
* This file exports types we want to expose to library users.
|
|
18
18
|
* Those types are considered as part of the API.
|
|
19
19
|
*/
|
|
20
|
-
export { IConstructorOptions, ILoadVideoOptions, ITransportOptions, IKeySystemOption, ISupplementaryTextTrackOption, ISupplementaryImageTrackOption, IDefaultAudioTrackOption, IDefaultTextTrackOption, INetworkConfigOption, IStartAtOption, ITMAudioTrackListItem as IAvailableAudioTrack, ITMTextTrackListItem as IAvailableTextTrack, ITMVideoTrackListItem as IAvailableVideoTrack, ITMAudioTrack as IAudioTrack, ITMTextTrack as ITextTrack, ITMVideoTrack as IVideoTrack, IAudioTrackPreference, ITextTrackPreference, IVideoTrackPreference, IStreamEvent, IStreamEventData, } from "./core/api";
|
|
21
|
-
export { IPersistentSessionInfo, IPersistentSessionStorage, } from "./core/
|
|
20
|
+
export { IConstructorOptions, ILoadVideoOptions, ITransportOptions, IKeySystemOption, ISupplementaryTextTrackOption, ISupplementaryImageTrackOption, IDefaultAudioTrackOption, IDefaultTextTrackOption, INetworkConfigOption, IStartAtOption, ITMAudioTrackListItem as IAvailableAudioTrack, ITMTextTrackListItem as IAvailableTextTrack, ITMVideoTrackListItem as IAvailableVideoTrack, ITMAudioTrack as IAudioTrack, ITMTextTrack as ITextTrack, ITMVideoTrack as IVideoTrack, IAudioTrackPreference, ITextTrackPreference, IVideoTrackPreference, IBitrateEstimate, IPositionUpdateItem as IPositionUpdate, IPlayerState, IStreamEvent, IStreamEventData, } from "./core/api";
|
|
21
|
+
export { IPersistentSessionInfo, IPersistentSessionStorage, } from "./core/decrypt";
|
|
22
|
+
export { IAudioTrackSwitchingMode } from "./core/stream";
|
|
22
23
|
export { ICustomError as IPlayerError } from "./errors";
|
|
23
24
|
export { IExposedAdaptation as IAdaptation, IExposedManifest as IManifest, IExposedPeriod as IPeriod, IExposedRepresentation as IRepresentation, IExposedSegment as ISegment, IRepresentationFilter, IRepresentationInfos, } from "./manifest";
|
|
24
25
|
export { ICustomSegmentLoader as ISegmentLoader, ICustomManifestLoader as IManifestLoader, } from "./transports";
|
|
@@ -24,7 +24,6 @@ var __assign = (this && this.__assign) || function () {
|
|
|
24
24
|
};
|
|
25
25
|
return __assign.apply(this, arguments);
|
|
26
26
|
};
|
|
27
|
-
import PPromise from "../../utils/promise";
|
|
28
27
|
import TaskCanceller from "../../utils/task_canceller";
|
|
29
28
|
import checkISOBMFFIntegrity from "../utils/check_isobmff_integrity";
|
|
30
29
|
import inferSegmentContainer from "../utils/infer_segment_container";
|
|
@@ -37,7 +36,7 @@ import inferSegmentContainer from "../utils/infer_segment_container";
|
|
|
37
36
|
*/
|
|
38
37
|
export default function addSegmentIntegrityChecks(segmentLoader) {
|
|
39
38
|
return function (url, content, initialCancelSignal, callbacks) {
|
|
40
|
-
return new
|
|
39
|
+
return new Promise(function (res, rej) {
|
|
41
40
|
var canceller = new TaskCanceller();
|
|
42
41
|
var unregisterCancelLstnr = initialCancelSignal
|
|
43
42
|
.register(function onCheckCancellation(err) {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { CancellationSignal } from "../../utils/task_canceller";
|
|
17
|
-
import { IImageTrackSegmentData, ILoadedImageSegmentFormat, ISegmentContext, ISegmentLoaderCallbacks,
|
|
17
|
+
import { IImageTrackSegmentData, ILoadedImageSegmentFormat, ISegmentContext, ISegmentLoaderCallbacks, ISegmentLoaderResultSegmentCreated, ISegmentLoaderResultSegmentLoaded, ISegmentParserParsedInitChunk, ISegmentParserParsedMediaChunk } from "../types";
|
|
18
18
|
/**
|
|
19
19
|
* Loads an image segment.
|
|
20
20
|
* @param {string|null} url
|
|
@@ -23,10 +23,11 @@ import { IImageTrackSegmentData, ILoadedImageSegmentFormat, ISegmentContext, ISe
|
|
|
23
23
|
* @param {Object} callbacks
|
|
24
24
|
* @returns {Promise}
|
|
25
25
|
*/
|
|
26
|
-
export declare function imageLoader(url: string | null, content: ISegmentContext, cancelSignal: CancellationSignal, callbacks: ISegmentLoaderCallbacks<ILoadedImageSegmentFormat>): Promise<ISegmentLoaderResultSegmentLoaded<ILoadedImageSegmentFormat> | ISegmentLoaderResultSegmentCreated<ILoadedImageSegmentFormat
|
|
26
|
+
export declare function imageLoader(url: string | null, content: ISegmentContext, cancelSignal: CancellationSignal, callbacks: ISegmentLoaderCallbacks<ILoadedImageSegmentFormat>): Promise<ISegmentLoaderResultSegmentLoaded<ILoadedImageSegmentFormat> | ISegmentLoaderResultSegmentCreated<ILoadedImageSegmentFormat>>;
|
|
27
27
|
/**
|
|
28
28
|
* Parses an image segment.
|
|
29
|
-
* @param {Object}
|
|
29
|
+
* @param {Object} loadedSegment
|
|
30
|
+
* @param {Object} content
|
|
30
31
|
* @returns {Object}
|
|
31
32
|
*/
|
|
32
33
|
export declare function imageParser(loadedSegment: {
|
|
@@ -13,8 +13,43 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
26
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
27
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
28
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
29
|
+
function step(op) {
|
|
30
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
31
|
+
while (_) try {
|
|
32
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
33
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
34
|
+
switch (op[0]) {
|
|
35
|
+
case 0: case 1: t = op; break;
|
|
36
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
37
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
38
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
39
|
+
default:
|
|
40
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
41
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
42
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
43
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
44
|
+
if (t[2]) _.ops.pop();
|
|
45
|
+
_.trys.pop(); continue;
|
|
46
|
+
}
|
|
47
|
+
op = body.call(thisArg, _);
|
|
48
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
49
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
50
|
+
}
|
|
51
|
+
};
|
|
16
52
|
import features from "../../features";
|
|
17
|
-
import PPromise from "../../utils/promise";
|
|
18
53
|
import request from "../../utils/request";
|
|
19
54
|
import takeFirstSet from "../../utils/take_first_set";
|
|
20
55
|
/**
|
|
@@ -26,19 +61,30 @@ import takeFirstSet from "../../utils/take_first_set";
|
|
|
26
61
|
* @returns {Promise}
|
|
27
62
|
*/
|
|
28
63
|
export function imageLoader(url, content, cancelSignal, callbacks) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
64
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
65
|
+
var segment, data;
|
|
66
|
+
return __generator(this, function (_a) {
|
|
67
|
+
switch (_a.label) {
|
|
68
|
+
case 0:
|
|
69
|
+
segment = content.segment;
|
|
70
|
+
if (segment.isInit || url === null) {
|
|
71
|
+
return [2 /*return*/, { resultType: "segment-created",
|
|
72
|
+
resultData: null }];
|
|
73
|
+
}
|
|
74
|
+
return [4 /*yield*/, request({ url: url, responseType: "arraybuffer",
|
|
75
|
+
onProgress: callbacks.onProgress, cancelSignal: cancelSignal })];
|
|
76
|
+
case 1:
|
|
77
|
+
data = _a.sent();
|
|
78
|
+
return [2 /*return*/, { resultType: "segment-loaded",
|
|
79
|
+
resultData: data }];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
38
83
|
}
|
|
39
84
|
/**
|
|
40
85
|
* Parses an image segment.
|
|
41
|
-
* @param {Object}
|
|
86
|
+
* @param {Object} loadedSegment
|
|
87
|
+
* @param {Object} content
|
|
42
88
|
* @returns {Object}
|
|
43
89
|
*/
|
|
44
90
|
export function imageParser(loadedSegment, content) {
|
|
@@ -47,6 +93,7 @@ export function imageParser(loadedSegment, content) {
|
|
|
47
93
|
if (content.segment.isInit) { // image init segment has no use
|
|
48
94
|
return { segmentType: "init",
|
|
49
95
|
initializationData: null,
|
|
96
|
+
initializationDataSize: 0,
|
|
50
97
|
protectionDataUpdate: false,
|
|
51
98
|
initTimescale: undefined };
|
|
52
99
|
}
|
|
@@ -58,6 +105,7 @@ export function imageParser(loadedSegment, content) {
|
|
|
58
105
|
if (data === null || features.imageParser === null) {
|
|
59
106
|
return { segmentType: "media",
|
|
60
107
|
chunkData: null,
|
|
108
|
+
chunkSize: 0,
|
|
61
109
|
chunkInfos: { duration: segment.duration,
|
|
62
110
|
time: segment.time }, chunkOffset: chunkOffset, protectionDataUpdate: false,
|
|
63
111
|
appendWindow: [period.start, period.end] };
|
|
@@ -70,6 +118,7 @@ export function imageParser(loadedSegment, content) {
|
|
|
70
118
|
end: Number.MAX_VALUE,
|
|
71
119
|
timescale: 1,
|
|
72
120
|
type: "bif" },
|
|
121
|
+
chunkSize: undefined,
|
|
73
122
|
chunkInfos: { time: 0,
|
|
74
123
|
duration: Number.MAX_VALUE }, chunkOffset: chunkOffset, protectionDataUpdate: false,
|
|
75
124
|
appendWindow: [period.start, period.end] };
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { concat } from "../../utils/byte_parsing";
|
|
17
|
-
import PPromise from "../../utils/promise";
|
|
18
17
|
import request from "../../utils/request";
|
|
19
18
|
import byteRange from "../utils/byte_range";
|
|
20
19
|
/**
|
|
@@ -49,7 +48,7 @@ export default function initSegmentLoader(url, segment, cancelSignal, callbacks)
|
|
|
49
48
|
responseType: "arraybuffer", cancelSignal: cancelSignal, onProgress: callbacks.onProgress });
|
|
50
49
|
var indexRequest$ = request({ url: url, headers: { Range: byteRange(segment.indexRange) },
|
|
51
50
|
responseType: "arraybuffer", cancelSignal: cancelSignal, onProgress: callbacks.onProgress });
|
|
52
|
-
return
|
|
51
|
+
return Promise.all([rangeRequest$, indexRequest$])
|
|
53
52
|
.then(function (_a) {
|
|
54
53
|
var initData = _a[0], indexData = _a[1];
|
|
55
54
|
var data = concat(new Uint8Array(initData.responseData), new Uint8Array(indexData.responseData));
|
|
@@ -18,7 +18,6 @@ import features from "../../features";
|
|
|
18
18
|
import log from "../../log";
|
|
19
19
|
import Manifest from "../../manifest";
|
|
20
20
|
import objectAssign from "../../utils/object_assign";
|
|
21
|
-
import PPromise from "../../utils/promise";
|
|
22
21
|
import request from "../../utils/request";
|
|
23
22
|
import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
|
|
24
23
|
export default function generateManifestParser(options) {
|
|
@@ -98,7 +97,7 @@ export default function generateManifestParser(options) {
|
|
|
98
97
|
onWarnings(parserResponse.value.warnings);
|
|
99
98
|
}
|
|
100
99
|
if (cancelSignal.isCancelled) {
|
|
101
|
-
return
|
|
100
|
+
return Promise.reject(cancelSignal.cancellationError);
|
|
102
101
|
}
|
|
103
102
|
var manifest = new Manifest(parserResponse.value.parsed, options);
|
|
104
103
|
return { manifest: manifest, url: url };
|
|
@@ -148,7 +147,7 @@ export default function generateManifestParser(options) {
|
|
|
148
147
|
});
|
|
149
148
|
});
|
|
150
149
|
});
|
|
151
|
-
return
|
|
150
|
+
return Promise.all(externalResources).then(function (loadedResources) {
|
|
152
151
|
if (value.format === "string") {
|
|
153
152
|
assertLoadedResourcesFormatString(loadedResources);
|
|
154
153
|
return processMpdParserResponse(value.continue(loadedResources));
|
|
@@ -17,7 +17,7 @@ import { CancellationSignal } from "../../utils/task_canceller";
|
|
|
17
17
|
import { ICustomSegmentLoader, ILoadedAudioVideoSegmentFormat, ISegmentContext, ISegmentLoader, ISegmentLoaderCallbacks, ISegmentLoaderResultChunkedComplete, ISegmentLoaderResultSegmentCreated, ISegmentLoaderResultSegmentLoaded } from "../types";
|
|
18
18
|
/**
|
|
19
19
|
* Segment loader triggered if there was no custom-defined one in the API.
|
|
20
|
-
* @param {string}
|
|
20
|
+
* @param {string} url
|
|
21
21
|
* @param {Object} content
|
|
22
22
|
* @param {boolean} lowLatencyMode
|
|
23
23
|
* @param {Object} callbacks
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { CustomLoaderError } from "../../errors";
|
|
17
|
-
import PPromise from "../../utils/promise";
|
|
18
17
|
import request, { fetchIsSupported, } from "../../utils/request";
|
|
19
18
|
import warnOnce from "../../utils/warn_once";
|
|
20
19
|
import byteRange from "../utils/byte_range";
|
|
@@ -24,7 +23,7 @@ import initSegmentLoader from "./init_segment_loader";
|
|
|
24
23
|
import lowLatencySegmentLoader from "./low_latency_segment_loader";
|
|
25
24
|
/**
|
|
26
25
|
* Segment loader triggered if there was no custom-defined one in the API.
|
|
27
|
-
* @param {string}
|
|
26
|
+
* @param {string} url
|
|
28
27
|
* @param {Object} content
|
|
29
28
|
* @param {boolean} lowLatencyMode
|
|
30
29
|
* @param {Object} callbacks
|
|
@@ -67,7 +66,7 @@ export default function generateSegmentLoader(_a) {
|
|
|
67
66
|
*/
|
|
68
67
|
function segmentLoader(url, content, cancelSignal, callbacks) {
|
|
69
68
|
if (url == null) {
|
|
70
|
-
return
|
|
69
|
+
return Promise.resolve({ resultType: "segment-created",
|
|
71
70
|
resultData: null });
|
|
72
71
|
}
|
|
73
72
|
if (lowLatencyMode || customSegmentLoader === undefined) {
|
|
@@ -79,7 +78,7 @@ export default function generateSegmentLoader(_a) {
|
|
|
79
78
|
representation: content.representation,
|
|
80
79
|
segment: content.segment,
|
|
81
80
|
transport: "dash", url: url };
|
|
82
|
-
return new
|
|
81
|
+
return new Promise(function (res, rej) {
|
|
83
82
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
84
83
|
var hasFinished = false;
|
|
85
84
|
/**
|
|
@@ -36,11 +36,13 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
36
36
|
if (segment.isInit) {
|
|
37
37
|
return { segmentType: "init",
|
|
38
38
|
initializationData: null,
|
|
39
|
+
initializationDataSize: 0,
|
|
39
40
|
protectionDataUpdate: false,
|
|
40
41
|
initTimescale: undefined };
|
|
41
42
|
}
|
|
42
43
|
return { segmentType: "media",
|
|
43
44
|
chunkData: null,
|
|
45
|
+
chunkSize: 0,
|
|
44
46
|
chunkInfos: null,
|
|
45
47
|
chunkOffset: 0,
|
|
46
48
|
protectionDataUpdate: false, appendWindow: appendWindow };
|
|
@@ -74,11 +76,11 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
74
76
|
var events = getEventsOutOfEMSGs(whitelistedEMSGs, manifest.publishTime);
|
|
75
77
|
if (events !== undefined) {
|
|
76
78
|
var needsManifestRefresh = events.needsManifestRefresh, inbandEvents = events.inbandEvents;
|
|
77
|
-
return { segmentType: "media", chunkData: chunkData, chunkInfos: chunkInfos, chunkOffset: chunkOffset, appendWindow: appendWindow, inbandEvents: inbandEvents, protectionDataUpdate: protectionDataUpdate, needsManifestRefresh: needsManifestRefresh };
|
|
79
|
+
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, appendWindow: appendWindow, inbandEvents: inbandEvents, protectionDataUpdate: protectionDataUpdate, needsManifestRefresh: needsManifestRefresh };
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
82
|
}
|
|
81
|
-
return { segmentType: "media", chunkData: chunkData, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionDataUpdate: protectionDataUpdate, appendWindow: appendWindow };
|
|
83
|
+
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionDataUpdate: protectionDataUpdate, appendWindow: appendWindow };
|
|
82
84
|
}
|
|
83
85
|
// we're handling an initialization segment
|
|
84
86
|
var indexRange = segment.indexRange;
|
|
@@ -117,6 +119,7 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
117
119
|
var parsedTimescale = isNullOrUndefined(timescale) ? undefined :
|
|
118
120
|
timescale;
|
|
119
121
|
return { segmentType: "init",
|
|
120
|
-
initializationData: chunkData,
|
|
122
|
+
initializationData: chunkData,
|
|
123
|
+
initializationDataSize: chunkData.length, protectionDataUpdate: protectionDataUpdate, initTimescale: parsedTimescale };
|
|
121
124
|
};
|
|
122
125
|
}
|
|
@@ -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 PPromise from "../../utils/promise";
|
|
17
16
|
import request, { fetchIsSupported, } from "../../utils/request";
|
|
18
17
|
import warnOnce from "../../utils/warn_once";
|
|
19
18
|
import byteRange from "../utils/byte_range";
|
|
@@ -41,7 +40,7 @@ export default function generateTextTrackLoader(_a) {
|
|
|
41
40
|
var adaptation = content.adaptation, representation = content.representation, segment = content.segment;
|
|
42
41
|
var range = segment.range;
|
|
43
42
|
if (url === null) {
|
|
44
|
-
return
|
|
43
|
+
return Promise.resolve({ resultType: "segment-created",
|
|
45
44
|
resultData: null });
|
|
46
45
|
}
|
|
47
46
|
if (segment.isInit) {
|