rx-player 4.0.0-dev.2023110700 → 4.0.0-dev.2023120600
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -226
- package/FILES.md +1 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -3
- package/dist/_esm5.processed/compat/add_text_track.js +4 -7
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +0 -7
- package/dist/_esm5.processed/compat/event_listeners.d.ts +2 -15
- package/dist/_esm5.processed/compat/event_listeners.js +2 -37
- package/dist/_esm5.processed/compat/index.d.ts +1 -3
- package/dist/_esm5.processed/compat/index.js +1 -3
- package/dist/_esm5.processed/config.d.ts +9 -21
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +0 -58
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +14 -54
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +2 -8
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +2 -11
- package/dist/_esm5.processed/core/api/debug/buffer_graph.js +2 -6
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +13 -32
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +3 -3
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +14 -35
- package/dist/_esm5.processed/core/api/option_utils.js +47 -230
- package/dist/_esm5.processed/core/api/public_api.d.ts +92 -266
- package/dist/_esm5.processed/core/api/public_api.js +451 -807
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.d.ts +3 -2
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.js +3 -2
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.d.ts → track_management/media_element_tracks_store.d.ts} +15 -75
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.js → track_management/media_element_tracks_store.js} +74 -193
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +84 -0
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +158 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +406 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.js +932 -0
- package/dist/_esm5.processed/core/api/utils.d.ts +1 -0
- package/dist/_esm5.processed/core/api/utils.js +28 -11
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +3 -3
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +83 -71
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +6 -5
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +10 -72
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +4 -4
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +6 -4
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +1 -3
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +7 -26
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +3 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +16 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -3
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +1 -6
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +4 -41
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +1 -1
- package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +1 -8
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +5 -19
- package/dist/_esm5.processed/core/init/types.d.ts +5 -15
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +2 -36
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +2 -82
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +19 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +1 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/index.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +33 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +49 -0
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +0 -1
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +2 -16
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +0 -15
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +183 -93
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +39 -0
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +133 -0
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +27 -13
- package/dist/_esm5.processed/core/stream/index.d.ts +2 -3
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -0
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +5 -7
- package/dist/_esm5.processed/core/stream/period/period_stream.js +13 -12
- package/dist/_esm5.processed/core/stream/period/types.d.ts +5 -14
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +2 -4
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +10 -46
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +29 -23
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +11 -1
- package/dist/_esm5.processed/default_config.d.ts +35 -98
- package/dist/_esm5.processed/default_config.js +36 -113
- package/dist/_esm5.processed/errors/custom_loader_error.d.ts +1 -3
- package/dist/_esm5.processed/errors/custom_loader_error.js +1 -3
- package/dist/_esm5.processed/errors/media_error.js +2 -2
- package/dist/_esm5.processed/errors/network_error.d.ts +0 -1
- package/dist/_esm5.processed/errors/network_error.js +0 -1
- package/dist/_esm5.processed/errors/request_error.d.ts +2 -3
- package/dist/_esm5.processed/errors/request_error.js +2 -5
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -3
- package/dist/_esm5.processed/features/features_object.js +0 -2
- package/dist/_esm5.processed/features/list/directfile.js +2 -5
- package/dist/_esm5.processed/features/list/index.d.ts +0 -2
- package/dist/_esm5.processed/features/list/index.js +0 -2
- package/dist/_esm5.processed/features/types.d.ts +3 -27
- package/dist/_esm5.processed/manifest/adaptation.d.ts +9 -11
- package/dist/_esm5.processed/manifest/adaptation.js +41 -30
- package/dist/_esm5.processed/manifest/index.d.ts +3 -4
- package/dist/_esm5.processed/manifest/manifest.d.ts +5 -54
- package/dist/_esm5.processed/manifest/manifest.js +5 -110
- package/dist/_esm5.processed/manifest/period.d.ts +4 -5
- package/dist/_esm5.processed/manifest/representation.d.ts +10 -5
- package/dist/_esm5.processed/manifest/representation.js +33 -10
- package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +2 -0
- package/dist/_esm5.processed/manifest/representation_index/static.js +6 -0
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +42 -21
- package/dist/_esm5.processed/manifest/types.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +17 -31
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +26 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +7 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +2 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +11 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +1 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +3 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +29 -17
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +13 -6
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +7 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +10 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +18 -2
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +6 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +7 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +5 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +12 -3
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +11 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +0 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +11 -17
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +21 -83
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +53 -125
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +119 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +159 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +3 -6
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +4 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +1 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +1 -9
- package/dist/_esm5.processed/public_types.d.ts +396 -308
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +5 -4
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +5 -4
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -3
- package/dist/_esm5.processed/transports/dash/pipelines.js +1 -4
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +26 -20
- package/dist/_esm5.processed/transports/dash/segment_parser.js +19 -24
- package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
- package/dist/_esm5.processed/transports/dash/text_parser.js +28 -33
- package/dist/_esm5.processed/transports/local/pipelines.js +1 -10
- package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/segment_parser.js +10 -10
- package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/local/text_parser.js +23 -23
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +34 -52
- package/dist/_esm5.processed/{utils/list_to_map.d.ts → transports/smooth/is_mp4_embedded_track.d.ts} +5 -5
- package/dist/_esm5.processed/{features/list/image_buffer.d.ts → transports/smooth/is_mp4_embedded_track.js} +7 -6
- package/dist/_esm5.processed/transports/smooth/pipelines.js +33 -190
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +28 -22
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +1 -26
- package/dist/_esm5.processed/transports/smooth/utils.js +1 -55
- package/dist/_esm5.processed/transports/types.d.ts +94 -89
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +5 -7
- package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +8 -12
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +19 -21
- package/dist/_esm5.processed/utils/array_includes.d.ts +2 -1
- package/dist/_esm5.processed/utils/array_includes.js +30 -28
- package/dist/_esm5.processed/utils/request/xhr.js +5 -5
- package/dist/commonjs/compat/is_codec_supported.js +22 -1
- package/dist/commonjs/compat/patch_webkit_source_buffer.js +2 -2
- package/dist/commonjs/config.d.ts +1 -0
- package/dist/commonjs/core/api/debug/buffer_graph.js +2 -6
- package/dist/commonjs/core/api/debug/modules/general_info.js +17 -10
- package/dist/commonjs/core/api/option_utils.d.ts +4 -0
- package/dist/commonjs/core/api/option_utils.js +8 -3
- package/dist/commonjs/core/api/public_api.d.ts +11 -1
- package/dist/commonjs/core/api/public_api.js +46 -11
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +11 -3
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +8 -1
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +8 -4
- package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
- package/dist/commonjs/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/commonjs/core/init/directfile_content_initializer.js +24 -7
- package/dist/commonjs/core/init/media_source_content_initializer.d.ts +6 -0
- package/dist/commonjs/core/init/media_source_content_initializer.js +4 -6
- package/dist/commonjs/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
- package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +16 -17
- package/dist/commonjs/core/init/utils/get_initial_time.d.ts +17 -3
- package/dist/commonjs/core/init/utils/get_initial_time.js +9 -7
- package/dist/commonjs/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.js +19 -2
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +2 -2
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/commonjs/core/stream/period/period_stream.js +2 -2
- package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +3 -3
- package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +1 -1
- package/dist/commonjs/default_config.d.ts +5 -0
- package/dist/commonjs/default_config.js +5 -0
- package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
- package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
- package/dist/commonjs/manifest/representation.js +18 -5
- package/dist/commonjs/manifest/representation_index/static.d.ts +1 -1
- package/dist/commonjs/manifest/representation_index/static.js +2 -2
- package/dist/commonjs/manifest/representation_index/types.d.ts +4 -4
- package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +30 -0
- package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/commonjs/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/base.js +4 -3
- package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
- package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
- package/dist/commonjs/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
- package/dist/commonjs/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/list.js +2 -2
- package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
- package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +42 -29
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
- package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +250 -51
- package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
- package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
- package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +13 -10
- package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +27 -14
- package/dist/commonjs/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +17 -18
- package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
- package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +21 -8
- package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +36 -20
- package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
- package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
- package/dist/commonjs/parsers/manifest/dash/node_parser_types.d.ts +2 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
- package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/local/representation_index.js +3 -3
- package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.js +2 -2
- package/dist/commonjs/parsers/manifest/smooth/representation_index.d.ts +5 -5
- package/dist/commonjs/parsers/manifest/smooth/representation_index.js +25 -9
- package/dist/commonjs/parsers/manifest/types.d.ts +1 -0
- package/dist/commonjs/parsers/manifest/utils/index_helpers.js +1 -1
- package/dist/commonjs/public_types.d.ts +78 -34
- package/dist/commonjs/transports/dash/init_segment_loader.js +10 -5
- package/dist/commonjs/transports/dash/manifest_parser.js +5 -2
- package/dist/commonjs/transports/dash/segment_loader.js +2 -1
- package/dist/commonjs/transports/dash/text_loader.js +2 -0
- package/dist/commonjs/transports/metaplaylist/manifest_loader.js +2 -1
- package/dist/commonjs/transports/metaplaylist/pipelines.js +4 -1
- package/dist/commonjs/transports/smooth/pipelines.js +4 -2
- package/dist/commonjs/transports/smooth/segment_loader.js +2 -1
- package/dist/commonjs/transports/types.d.ts +12 -0
- package/dist/commonjs/transports/utils/generate_manifest_loader.js +6 -3
- package/dist/commonjs/utils/queue_microtask.d.ts +2 -0
- package/dist/commonjs/utils/queue_microtask.js +7 -0
- package/dist/commonjs/utils/request/fetch.d.ts +6 -0
- package/dist/commonjs/utils/request/fetch.js +29 -8
- package/dist/commonjs/utils/request/xhr.d.ts +11 -5
- package/dist/commonjs/utils/request/xhr.js +29 -8
- package/dist/es2017/compat/is_codec_supported.js +22 -1
- package/dist/es2017/compat/patch_webkit_source_buffer.js +2 -2
- package/dist/es2017/config.d.ts +1 -0
- package/dist/es2017/core/api/debug/buffer_graph.js +2 -6
- package/dist/es2017/core/api/debug/modules/general_info.js +17 -10
- package/dist/es2017/core/api/option_utils.d.ts +4 -0
- package/dist/es2017/core/api/option_utils.js +8 -3
- package/dist/es2017/core/api/public_api.d.ts +11 -1
- package/dist/es2017/core/api/public_api.js +44 -9
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +11 -3
- package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +8 -1
- package/dist/es2017/core/fetchers/segment/segment_fetcher.js +8 -4
- package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
- package/dist/es2017/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/es2017/core/init/directfile_content_initializer.js +24 -7
- package/dist/es2017/core/init/media_source_content_initializer.d.ts +6 -0
- package/dist/es2017/core/init/media_source_content_initializer.js +4 -6
- package/dist/es2017/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
- package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +16 -15
- package/dist/es2017/core/init/utils/get_initial_time.d.ts +17 -3
- package/dist/es2017/core/init/utils/get_initial_time.js +9 -7
- package/dist/es2017/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/es2017/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/es2017/core/segment_buffers/implementations/text/html/utils.js +18 -2
- package/dist/es2017/core/stream/adaptation/adaptation_stream.js +2 -2
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +3 -3
- package/dist/es2017/core/stream/period/period_stream.js +2 -2
- package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +3 -3
- package/dist/es2017/core/stream/representation/utils/get_needed_segments.js +1 -1
- package/dist/es2017/default_config.d.ts +5 -0
- package/dist/es2017/default_config.js +5 -0
- package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
- package/dist/es2017/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
- package/dist/es2017/manifest/representation.js +18 -5
- package/dist/es2017/manifest/representation_index/static.d.ts +1 -1
- package/dist/es2017/manifest/representation_index/static.js +2 -2
- package/dist/es2017/manifest/representation_index/types.d.ts +4 -4
- package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
- package/dist/es2017/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/es2017/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/base.js +4 -3
- package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
- package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
- package/dist/es2017/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
- package/dist/es2017/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/list.js +2 -2
- package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
- package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +40 -27
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
- package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +246 -51
- package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
- package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
- package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.js +11 -8
- package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +27 -13
- package/dist/es2017/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
- package/dist/es2017/parsers/manifest/dash/common/parse_periods.js +13 -16
- package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
- package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.js +10 -8
- package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +36 -20
- package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
- package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
- package/dist/es2017/parsers/manifest/dash/node_parser_types.d.ts +2 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
- package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/es2017/parsers/manifest/local/representation_index.d.ts +1 -1
- package/dist/es2017/parsers/manifest/local/representation_index.js +3 -3
- package/dist/es2017/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
- package/dist/es2017/parsers/manifest/metaplaylist/representation_index.js +2 -2
- package/dist/es2017/parsers/manifest/smooth/representation_index.d.ts +5 -5
- package/dist/es2017/parsers/manifest/smooth/representation_index.js +25 -9
- package/dist/es2017/parsers/manifest/types.d.ts +1 -0
- package/dist/es2017/parsers/manifest/utils/index_helpers.js +1 -1
- package/dist/es2017/public_types.d.ts +78 -34
- package/dist/es2017/transports/dash/init_segment_loader.js +5 -0
- package/dist/es2017/transports/dash/manifest_parser.js +3 -0
- package/dist/es2017/transports/dash/segment_loader.js +1 -0
- package/dist/es2017/transports/dash/text_loader.js +2 -0
- package/dist/es2017/transports/metaplaylist/manifest_loader.js +1 -0
- package/dist/es2017/transports/metaplaylist/pipelines.js +4 -1
- package/dist/es2017/transports/smooth/pipelines.js +2 -0
- package/dist/es2017/transports/smooth/segment_loader.js +1 -0
- package/dist/es2017/transports/types.d.ts +12 -0
- package/dist/es2017/transports/utils/generate_manifest_loader.js +3 -0
- package/dist/es2017/utils/queue_microtask.d.ts +2 -0
- package/dist/es2017/utils/queue_microtask.js +5 -0
- package/dist/es2017/utils/request/fetch.d.ts +6 -0
- package/dist/es2017/utils/request/fetch.js +29 -8
- package/dist/es2017/utils/request/xhr.d.ts +11 -5
- package/dist/es2017/utils/request/xhr.js +30 -9
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +900 -492
- package/dist/rx-player.min.js +1 -1
- package/package.json +3 -7
- package/scripts/update-version +2 -0
- package/sonar-project.properties +1 -1
- package/src/compat/is_codec_supported.ts +23 -1
- package/src/compat/patch_webkit_source_buffer.ts +2 -2
- package/src/core/api/debug/buffer_graph.ts +2 -5
- package/src/core/api/debug/modules/general_info.ts +15 -10
- package/src/core/api/option_utils.ts +11 -3
- package/src/core/api/public_api.ts +48 -8
- package/src/core/fetchers/manifest/manifest_fetcher.ts +21 -3
- package/src/core/fetchers/segment/segment_fetcher.ts +19 -5
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +1 -0
- package/src/core/fetchers/utils/schedule_request.ts +1 -1
- package/src/core/init/directfile_content_initializer.ts +23 -7
- package/src/core/init/media_source_content_initializer.ts +13 -7
- package/src/core/init/utils/content_time_boundaries_observer.ts +23 -22
- package/src/core/init/utils/get_initial_time.ts +25 -12
- package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +15 -0
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +57 -6
- package/src/core/segment_buffers/implementations/text/html/utils.ts +19 -2
- package/src/core/stream/adaptation/adaptation_stream.ts +2 -2
- package/src/core/stream/orchestrator/stream_orchestrator.ts +3 -3
- package/src/core/stream/period/period_stream.ts +2 -2
- package/src/core/stream/representation/utils/get_buffer_status.ts +3 -3
- package/src/core/stream/representation/utils/get_needed_segments.ts +2 -2
- package/src/default_config.ts +5 -0
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +3 -1
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +2 -0
- package/src/manifest/representation.ts +19 -6
- package/src/manifest/representation_index/static.ts +2 -2
- package/src/manifest/representation_index/types.ts +4 -4
- package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +37 -0
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +20 -0
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +182 -36
- package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +32 -0
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +5 -0
- package/src/parsers/manifest/dash/common/indexes/base.ts +12 -4
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +19 -5
- package/src/parsers/manifest/dash/common/indexes/index.ts +16 -4
- package/src/parsers/manifest/dash/common/indexes/list.ts +2 -2
- package/src/parsers/manifest/dash/common/indexes/template.ts +52 -31
- package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +4 -1
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +366 -60
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +63 -25
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +10 -4
- package/src/parsers/manifest/dash/common/parse_mpd.ts +28 -15
- package/src/parsers/manifest/dash/common/parse_periods.ts +12 -17
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +50 -26
- package/src/parsers/manifest/dash/common/parse_representations.ts +39 -20
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +4 -0
- package/src/parsers/manifest/dash/node_parser_types.ts +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +2 -0
- package/src/parsers/manifest/local/representation_index.ts +3 -3
- package/src/parsers/manifest/metaplaylist/representation_index.ts +2 -2
- package/src/parsers/manifest/smooth/representation_index.ts +23 -9
- package/src/parsers/manifest/types.ts +2 -0
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +1 -1
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +1 -1
- package/src/parsers/manifest/utils/index_helpers.ts +1 -1
- package/src/public_types.ts +79 -34
- package/src/transports/dash/init_segment_loader.ts +5 -0
- package/src/transports/dash/manifest_parser.ts +6 -0
- package/src/transports/dash/segment_loader.ts +1 -0
- package/src/transports/dash/text_loader.ts +2 -0
- package/src/transports/metaplaylist/manifest_loader.ts +1 -0
- package/src/transports/metaplaylist/pipelines.ts +4 -1
- package/src/transports/smooth/pipelines.ts +2 -0
- package/src/transports/smooth/segment_loader.ts +1 -0
- package/src/transports/types.ts +12 -0
- package/src/transports/utils/generate_manifest_loader.ts +3 -0
- package/src/utils/queue_microtask.ts +7 -0
- package/src/utils/request/fetch.ts +35 -8
- package/src/utils/request/xhr.ts +45 -14
- package/dist/_esm5.processed/compat/fullscreen.d.ts +0 -32
- package/dist/_esm5.processed/compat/fullscreen.js +0 -78
- package/dist/_esm5.processed/compat/is_offline.d.ts +0 -39
- package/dist/_esm5.processed/compat/is_offline.js +0 -43
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +0 -258
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +0 -989
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +0 -75
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +0 -133
- package/dist/_esm5.processed/features/list/bif_parser.d.ts +0 -23
- package/dist/_esm5.processed/features/list/bif_parser.js +0 -27
- package/dist/_esm5.processed/features/list/image_buffer.js +0 -25
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +0 -38
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +0 -129
- package/dist/_esm5.processed/utils/list_to_map.js +0 -28
- package/dist/_esm5.processed/utils/simple_set.d.ts +0 -51
- package/dist/_esm5.processed/utils/simple_set.js +0 -57
- package/dist/_esm5.processed/utils/uniq.d.ts +0 -36
- package/dist/_esm5.processed/utils/uniq.js +0 -43
- package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
- package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.js +0 -54
- package/dist/es2017/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
- package/dist/es2017/parsers/manifest/utils/is_segment_still_available.js +0 -51
- package/src/parsers/manifest/utils/is_segment_still_available.ts +0 -58
- package/src/typings/next-tick.d.ts +0 -23
- package/src/typings/object-assign.d.ts +0 -48
|
@@ -208,7 +208,7 @@ function getAdaptationSetSwitchingIDs(adaptation) {
|
|
|
208
208
|
*/
|
|
209
209
|
function parseAdaptationSets(adaptationsIR, context) {
|
|
210
210
|
var e_2, _a;
|
|
211
|
-
var _b, _c, _d, _e, _f, _g;
|
|
211
|
+
var _b, _c, _d, _e, _f, _g, _h;
|
|
212
212
|
var parsedAdaptations = { video: [],
|
|
213
213
|
audio: [],
|
|
214
214
|
text: [] };
|
|
@@ -224,8 +224,12 @@ function parseAdaptationSets(adaptationsIR, context) {
|
|
|
224
224
|
roles.some(function (role) { return role.schemeIdUri === "urn:mpeg:dash:role:2011"; });
|
|
225
225
|
var representationsIR = adaptation.children.representations;
|
|
226
226
|
var availabilityTimeComplete = (_b = adaptation.attributes.availabilityTimeComplete) !== null && _b !== void 0 ? _b : context.availabilityTimeComplete;
|
|
227
|
-
var availabilityTimeOffset =
|
|
228
|
-
|
|
227
|
+
var availabilityTimeOffset = void 0;
|
|
228
|
+
if (adaptation.attributes.availabilityTimeOffset !== undefined ||
|
|
229
|
+
context.availabilityTimeOffset !== undefined) {
|
|
230
|
+
availabilityTimeOffset = ((_c = adaptation.attributes.availabilityTimeOffset) !== null && _c !== void 0 ? _c : 0) +
|
|
231
|
+
((_d = context.availabilityTimeOffset) !== null && _d !== void 0 ? _d : 0);
|
|
232
|
+
}
|
|
229
233
|
var adaptationMimeType = adaptation.attributes.mimeType;
|
|
230
234
|
var adaptationCodecs = adaptation.attributes.codecs;
|
|
231
235
|
var type = (0, infer_adaptation_type_1.default)(representationsIR, (0, is_non_empty_string_1.default)(adaptationMimeType) ?
|
|
@@ -238,7 +242,7 @@ function parseAdaptationSets(adaptationsIR, context) {
|
|
|
238
242
|
if (type === undefined) {
|
|
239
243
|
continue;
|
|
240
244
|
}
|
|
241
|
-
var priority = (
|
|
245
|
+
var priority = (_e = adaptation.attributes.selectionPriority) !== null && _e !== void 0 ? _e : 1;
|
|
242
246
|
var originalID = adaptation.attributes.id;
|
|
243
247
|
var adaptationSetSwitchingIDs = getAdaptationSetSwitchingIDs(adaptation);
|
|
244
248
|
var parentSegmentTemplates = [];
|
|
@@ -260,14 +264,13 @@ function parseAdaptationSets(adaptationsIR, context) {
|
|
|
260
264
|
parentSegmentTemplates: parentSegmentTemplates,
|
|
261
265
|
receivedTime: context.receivedTime,
|
|
262
266
|
start: context.start,
|
|
263
|
-
timeShiftBufferDepth: context.timeShiftBufferDepth,
|
|
264
267
|
unsafelyBaseOnPreviousAdaptation: null,
|
|
265
268
|
};
|
|
266
269
|
var trickModeProperty = Array.isArray(essentialProperties) ?
|
|
267
270
|
(0, array_find_1.default)(essentialProperties, function (scheme) {
|
|
268
271
|
return scheme.schemeIdUri === "http://dashif.org/guidelines/trickmode";
|
|
269
272
|
}) : undefined;
|
|
270
|
-
var trickModeAttachedAdaptationIds = (
|
|
273
|
+
var trickModeAttachedAdaptationIds = (_f = trickModeProperty === null || trickModeProperty === void 0 ? void 0 : trickModeProperty.value) === null || _f === void 0 ? void 0 : _f.split(" ");
|
|
271
274
|
var isTrickModeTrack = trickModeAttachedAdaptationIds !== undefined;
|
|
272
275
|
var accessibilities = adaptationChildren.accessibilities;
|
|
273
276
|
var isDub = void 0;
|
|
@@ -310,8 +313,8 @@ function parseAdaptationSets(adaptationsIR, context) {
|
|
|
310
313
|
}
|
|
311
314
|
var newID = adaptationID;
|
|
312
315
|
parsedAdaptationsIDs.push(adaptationID);
|
|
313
|
-
reprCtxt.unsafelyBaseOnPreviousAdaptation = (
|
|
314
|
-
.unsafelyBaseOnPreviousPeriod) === null ||
|
|
316
|
+
reprCtxt.unsafelyBaseOnPreviousAdaptation = (_h = (_g = context
|
|
317
|
+
.unsafelyBaseOnPreviousPeriod) === null || _g === void 0 ? void 0 : _g.getAdaptation(adaptationID)) !== null && _h !== void 0 ? _h : null;
|
|
315
318
|
var representations = (0, parse_representations_1.default)(representationsIR, adaptation, reprCtxt);
|
|
316
319
|
var parsedAdaptationSet = { id: adaptationID, representations: representations, type: type, isTrickModeTrack: isTrickModeTrack };
|
|
317
320
|
if (adaptation.attributes.language != null) {
|
|
@@ -342,7 +345,7 @@ function parseAdaptationSets(adaptationsIR, context) {
|
|
|
342
345
|
// look if we have to merge this into another Adaptation
|
|
343
346
|
var mergedIntoIdx = -1;
|
|
344
347
|
var _loop_1 = function (id) {
|
|
345
|
-
var
|
|
348
|
+
var _j;
|
|
346
349
|
var switchingInfos = adaptationSwitchingInfos[id];
|
|
347
350
|
if (switchingInfos !== undefined &&
|
|
348
351
|
switchingInfos.newID !== newID &&
|
|
@@ -356,7 +359,7 @@ function parseAdaptationSets(adaptationsIR, context) {
|
|
|
356
359
|
parsedAdaptationSet.closedCaption &&
|
|
357
360
|
mergedInto[0].language === parsedAdaptationSet.language) {
|
|
358
361
|
log_1.default.info("DASH Parser: merging \"switchable\" AdaptationSets", originalID, id);
|
|
359
|
-
(
|
|
362
|
+
(_j = mergedInto[0].representations).push.apply(_j, __spreadArray([], __read(parsedAdaptationSet.representations), false));
|
|
360
363
|
mergedInto[1] = {
|
|
361
364
|
priority: Math.max(priority, mergedInto[1].priority),
|
|
362
365
|
isMainAdaptation: isMainAdaptation ||
|
|
@@ -60,6 +60,7 @@ var resolve_url_1 = require("../../../../utils/resolve_url");
|
|
|
60
60
|
var get_clock_offset_1 = require("./get_clock_offset");
|
|
61
61
|
var get_http_utc_timing_url_1 = require("./get_http_utc-timing_url");
|
|
62
62
|
var get_minimum_and_maximum_positions_1 = require("./get_minimum_and_maximum_positions");
|
|
63
|
+
var manifest_bounds_calculator_1 = require("./manifest_bounds_calculator");
|
|
63
64
|
var parse_availability_start_time_1 = require("./parse_availability_start_time");
|
|
64
65
|
var parse_periods_1 = require("./parse_periods");
|
|
65
66
|
var resolve_base_urls_1 = require("./resolve_base_urls");
|
|
@@ -183,7 +184,14 @@ function parseCompleteIntermediateRepresentation(mpdIR, args, warnings, xlinkInf
|
|
|
183
184
|
var availabilityStartTime = (0, parse_availability_start_time_1.default)(rootAttributes, args.referenceDateTime);
|
|
184
185
|
var timeShiftBufferDepth = rootAttributes.timeShiftBufferDepth;
|
|
185
186
|
var clockOffset = args.externalClockOffset, unsafelyBaseOnPreviousManifest = args.unsafelyBaseOnPreviousManifest;
|
|
186
|
-
var
|
|
187
|
+
var externalClockOffset = args.externalClockOffset;
|
|
188
|
+
var manifestBoundsCalculator = new manifest_bounds_calculator_1.default({
|
|
189
|
+
availabilityStartTime: availabilityStartTime,
|
|
190
|
+
isDynamic: isDynamic,
|
|
191
|
+
timeShiftBufferDepth: timeShiftBufferDepth,
|
|
192
|
+
serverTimestampOffset: externalClockOffset,
|
|
193
|
+
});
|
|
194
|
+
var manifestInfos = { availabilityStartTime: availabilityStartTime, baseURLs: mpdBaseUrls, clockOffset: clockOffset, duration: rootAttributes.duration, isDynamic: isDynamic, manifestBoundsCalculator: manifestBoundsCalculator, manifestProfiles: mpdIR.attributes.profiles,
|
|
187
195
|
receivedTime: args.manifestReceivedTime, timeShiftBufferDepth: timeShiftBufferDepth, unsafelyBaseOnPreviousManifest: unsafelyBaseOnPreviousManifest, xlinkInfos: xlinkInfos, xmlNamespaces: mpdIR.attributes.namespaces };
|
|
188
196
|
var parsedPeriods = (0, parse_periods_1.default)(rootChildren.periods, manifestInfos);
|
|
189
197
|
var mediaPresentationDuration = rootAttributes.duration;
|
|
@@ -223,38 +231,43 @@ function parseCompleteIntermediateRepresentation(mpdIR, args, warnings, xlinkInf
|
|
|
223
231
|
time: now };
|
|
224
232
|
}
|
|
225
233
|
else {
|
|
226
|
-
|
|
227
|
-
timeshiftDepth = timeShiftBufferDepth !== null && timeShiftBufferDepth !== void 0 ? timeShiftBufferDepth : null;
|
|
234
|
+
// Determine the maximum seekable position
|
|
228
235
|
var finalMaximumSafePosition = void 0;
|
|
229
|
-
var livePosition = void 0;
|
|
230
|
-
if (maximumUnsafePosition !== undefined) {
|
|
231
|
-
livePosition = maximumUnsafePosition;
|
|
232
|
-
}
|
|
233
236
|
if (maximumSafePosition !== undefined) {
|
|
234
237
|
finalMaximumSafePosition = maximumSafePosition;
|
|
235
238
|
}
|
|
236
239
|
else {
|
|
237
|
-
var ast = availabilityStartTime !== null && availabilityStartTime !== void 0 ? availabilityStartTime : 0;
|
|
238
|
-
var externalClockOffset = args.externalClockOffset;
|
|
239
240
|
if (externalClockOffset === undefined) {
|
|
240
241
|
log_1.default.warn("DASH Parser: use system clock to define maximum position");
|
|
241
|
-
finalMaximumSafePosition = (Date.now() / 1000) -
|
|
242
|
+
finalMaximumSafePosition = (Date.now() / 1000) - availabilityStartTime;
|
|
242
243
|
}
|
|
243
244
|
else {
|
|
244
245
|
var serverTime = (0, monotonic_timestamp_1.default)() + externalClockOffset;
|
|
245
|
-
finalMaximumSafePosition = (serverTime / 1000) -
|
|
246
|
+
finalMaximumSafePosition = (serverTime / 1000) - availabilityStartTime;
|
|
246
247
|
}
|
|
247
248
|
}
|
|
249
|
+
// Determine live edge (what position corresponds to live content, can be
|
|
250
|
+
// inferior or superior to the maximum anounced position in some specific
|
|
251
|
+
// scenarios). However, the `timeShiftBufferDepth` should be based on it.
|
|
252
|
+
var livePosition = manifestBoundsCalculator.getEstimatedLiveEdge();
|
|
248
253
|
if (livePosition === undefined) {
|
|
249
|
-
|
|
254
|
+
if (maximumUnsafePosition !== undefined) {
|
|
255
|
+
livePosition = maximumUnsafePosition;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
livePosition = finalMaximumSafePosition;
|
|
259
|
+
}
|
|
260
|
+
// manifestBoundsCalculator.forceLiveEdge(livePosition);
|
|
250
261
|
}
|
|
251
262
|
maximumTimeData = { isLinear: true,
|
|
252
263
|
maximumSafePosition: finalMaximumSafePosition, livePosition: livePosition, time: now };
|
|
253
264
|
// if the minimum calculated time is even below the buffer depth, perhaps we
|
|
254
265
|
// can go even lower in terms of depth
|
|
266
|
+
minimumTime = minimumSafePosition;
|
|
267
|
+
timeshiftDepth = timeShiftBufferDepth !== null && timeShiftBufferDepth !== void 0 ? timeShiftBufferDepth : null;
|
|
255
268
|
if (timeshiftDepth !== null && minimumTime !== undefined &&
|
|
256
|
-
|
|
257
|
-
timeshiftDepth =
|
|
269
|
+
livePosition - minimumTime > timeshiftDepth) {
|
|
270
|
+
timeshiftDepth = livePosition - minimumTime;
|
|
258
271
|
}
|
|
259
272
|
}
|
|
260
273
|
// `isLastPeriodKnown` should be `true` in two cases for DASH contents:
|
|
@@ -63,5 +63,5 @@ export interface IPeriodContext extends IInheritedAdaptationContext {
|
|
|
63
63
|
value: string;
|
|
64
64
|
}> | undefined;
|
|
65
65
|
}
|
|
66
|
-
type IInheritedAdaptationContext = Omit<IAdaptationSetContext, "availabilityTimeComplete" | "availabilityTimeOffset" | "duration" | "isLastPeriod" | "
|
|
66
|
+
type IInheritedAdaptationContext = Omit<IAdaptationSetContext, "availabilityTimeComplete" | "availabilityTimeOffset" | "duration" | "isLastPeriod" | "start" | "unsafelyBaseOnPreviousPeriod">;
|
|
67
67
|
export {};
|
|
@@ -45,13 +45,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
45
45
|
var log_1 = require("../../../../log");
|
|
46
46
|
var flat_map_1 = require("../../../../utils/flat_map");
|
|
47
47
|
var id_generator_1 = require("../../../../utils/id_generator");
|
|
48
|
+
var is_null_or_undefined_1 = require("../../../../utils/is_null_or_undefined");
|
|
48
49
|
var monotonic_timestamp_1 = require("../../../../utils/monotonic_timestamp");
|
|
49
50
|
var object_values_1 = require("../../../../utils/object_values");
|
|
50
51
|
var string_parsing_1 = require("../../../../utils/string_parsing");
|
|
51
52
|
// eslint-disable-next-line max-len
|
|
52
53
|
var flatten_overlapping_periods_1 = require("./flatten_overlapping_periods");
|
|
53
54
|
var get_periods_time_infos_1 = require("./get_periods_time_infos");
|
|
54
|
-
var manifest_bounds_calculator_1 = require("./manifest_bounds_calculator");
|
|
55
55
|
var parse_adaptation_sets_1 = require("./parse_adaptation_sets");
|
|
56
56
|
var resolve_base_urls_1 = require("./resolve_base_urls");
|
|
57
57
|
var generatePeriodID = (0, id_generator_1.default)();
|
|
@@ -62,15 +62,14 @@ var generatePeriodID = (0, id_generator_1.default)();
|
|
|
62
62
|
* @returns {Array.<Object>}
|
|
63
63
|
*/
|
|
64
64
|
function parsePeriods(periodsIR, context) {
|
|
65
|
-
var _a, _b, _c, _d
|
|
65
|
+
var _a, _b, _c, _d;
|
|
66
66
|
var parsedPeriods = [];
|
|
67
67
|
var periodsTimeInformation = (0, get_periods_time_infos_1.default)(periodsIR, context);
|
|
68
68
|
if (periodsTimeInformation.length !== periodsIR.length) {
|
|
69
69
|
throw new Error("MPD parsing error: the time information are incoherent.");
|
|
70
70
|
}
|
|
71
|
-
var isDynamic = context.isDynamic,
|
|
72
|
-
|
|
73
|
-
if (!isDynamic && context.duration != null) {
|
|
71
|
+
var isDynamic = context.isDynamic, manifestBoundsCalculator = context.manifestBoundsCalculator;
|
|
72
|
+
if (!isDynamic && !(0, is_null_or_undefined_1.default)(context.duration)) {
|
|
74
73
|
manifestBoundsCalculator.setLastPosition(context.duration);
|
|
75
74
|
}
|
|
76
75
|
var _loop_1 = function (i) {
|
|
@@ -78,9 +77,9 @@ function parsePeriods(periodsIR, context) {
|
|
|
78
77
|
var periodIR = periodsIR[i];
|
|
79
78
|
var xlinkInfos = context.xlinkInfos.get(periodIR);
|
|
80
79
|
var periodBaseURLs = (0, resolve_base_urls_1.default)(context.baseURLs, periodIR.children.baseURLs);
|
|
81
|
-
var
|
|
80
|
+
var _f = periodsTimeInformation[i], periodStart = _f.periodStart, periodDuration = _f.periodDuration, periodEnd = _f.periodEnd;
|
|
82
81
|
var periodID;
|
|
83
|
-
if (periodIR.attributes.id
|
|
82
|
+
if ((0, is_null_or_undefined_1.default)(periodIR.attributes.id)) {
|
|
84
83
|
log_1.default.warn("DASH: No usable id found in the Period. Generating one.");
|
|
85
84
|
periodID = "gen-dash-period-" + generatePeriodID();
|
|
86
85
|
}
|
|
@@ -95,14 +94,14 @@ function parsePeriods(periodsIR, context) {
|
|
|
95
94
|
context.receivedTime;
|
|
96
95
|
var unsafelyBaseOnPreviousPeriod = (_b = (_a = context
|
|
97
96
|
.unsafelyBaseOnPreviousManifest) === null || _a === void 0 ? void 0 : _a.getPeriod(periodID)) !== null && _b !== void 0 ? _b : null;
|
|
98
|
-
var availabilityTimeComplete =
|
|
99
|
-
var availabilityTimeOffset =
|
|
97
|
+
var availabilityTimeComplete = periodIR.attributes.availabilityTimeComplete;
|
|
98
|
+
var availabilityTimeOffset = periodIR.attributes.availabilityTimeOffset;
|
|
100
99
|
var manifestProfiles = context.manifestProfiles;
|
|
101
100
|
var segmentTemplate = periodIR.children.segmentTemplate;
|
|
102
|
-
var adapCtxt = { availabilityTimeComplete: availabilityTimeComplete, availabilityTimeOffset: availabilityTimeOffset, baseURLs: periodBaseURLs, manifestBoundsCalculator: manifestBoundsCalculator, end: periodEnd, isDynamic: isDynamic, isLastPeriod: isLastPeriod, manifestProfiles: manifestProfiles, receivedTime: receivedTime, segmentTemplate: segmentTemplate, start: periodStart,
|
|
101
|
+
var adapCtxt = { availabilityTimeComplete: availabilityTimeComplete, availabilityTimeOffset: availabilityTimeOffset, baseURLs: periodBaseURLs, manifestBoundsCalculator: manifestBoundsCalculator, end: periodEnd, isDynamic: isDynamic, isLastPeriod: isLastPeriod, manifestProfiles: manifestProfiles, receivedTime: receivedTime, segmentTemplate: segmentTemplate, start: periodStart, unsafelyBaseOnPreviousPeriod: unsafelyBaseOnPreviousPeriod };
|
|
103
102
|
var adaptations = (0, parse_adaptation_sets_1.default)(periodIR.children.adaptations, adapCtxt);
|
|
104
|
-
var namespaces = ((
|
|
105
|
-
.concat((
|
|
103
|
+
var namespaces = ((_c = context.xmlNamespaces) !== null && _c !== void 0 ? _c : [])
|
|
104
|
+
.concat((_d = periodIR.attributes.namespaces) !== null && _d !== void 0 ? _d : []);
|
|
106
105
|
var streamEvents = generateStreamEvents(periodIR.children.eventStreams, periodStart, namespaces);
|
|
107
106
|
var parsedPeriod = { id: periodID,
|
|
108
107
|
start: periodStart,
|
|
@@ -124,7 +123,7 @@ function parsePeriods(periodsIR, context) {
|
|
|
124
123
|
else {
|
|
125
124
|
var guessedLastPositionFromClock = guessLastPositionFromClock(context, periodStart);
|
|
126
125
|
if (guessedLastPositionFromClock !== undefined) {
|
|
127
|
-
var
|
|
126
|
+
var _g = __read(guessedLastPositionFromClock, 2), guessedLastPosition = _g[0], guessedPositionTime = _g[1];
|
|
128
127
|
manifestBoundsCalculator.setLastPosition(guessedLastPosition, guessedPositionTime);
|
|
129
128
|
}
|
|
130
129
|
}
|
|
@@ -140,7 +139,7 @@ function parsePeriods(periodsIR, context) {
|
|
|
140
139
|
// Guess a last time the last position
|
|
141
140
|
var guessedLastPositionFromClock = guessLastPositionFromClock(context, 0);
|
|
142
141
|
if (guessedLastPositionFromClock !== undefined) {
|
|
143
|
-
var
|
|
142
|
+
var _e = __read(guessedLastPositionFromClock, 2), lastPosition = _e[0], positionTime = _e[1];
|
|
144
143
|
manifestBoundsCalculator.setLastPosition(lastPosition, positionTime);
|
|
145
144
|
}
|
|
146
145
|
}
|
|
@@ -176,7 +175,7 @@ exports.default = parsePeriods;
|
|
|
176
175
|
* @returns {Array.<number|undefined>}
|
|
177
176
|
*/
|
|
178
177
|
function guessLastPositionFromClock(context, minimumTime) {
|
|
179
|
-
if (context.clockOffset
|
|
178
|
+
if (!(0, is_null_or_undefined_1.default)(context.clockOffset)) {
|
|
180
179
|
var lastPosition = context.clockOffset / 1000 -
|
|
181
180
|
context.availabilityStartTime;
|
|
182
181
|
var positionTime = (0, monotonic_timestamp_1.default)() / 1000;
|
|
@@ -212,7 +211,7 @@ function getMaximumLastPosition(adaptationsPerType) {
|
|
|
212
211
|
var maxEncounteredPosition = null;
|
|
213
212
|
var allIndexAreEmpty = true;
|
|
214
213
|
var adaptationsVal = (0, object_values_1.default)(adaptationsPerType)
|
|
215
|
-
.filter(function (ada) { return ada
|
|
214
|
+
.filter(function (ada) { return !(0, is_null_or_undefined_1.default)(ada); });
|
|
216
215
|
var allAdaptations = (0, flat_map_1.default)(adaptationsVal, function (adaptationsForType) { return adaptationsForType; });
|
|
217
216
|
try {
|
|
218
217
|
for (var allAdaptations_1 = __values(allAdaptations), allAdaptations_1_1 = allAdaptations_1.next(); !allAdaptations_1_1.done; allAdaptations_1_1 = allAdaptations_1.next()) {
|
|
@@ -226,7 +225,7 @@ function getMaximumLastPosition(adaptationsPerType) {
|
|
|
226
225
|
allIndexAreEmpty = false;
|
|
227
226
|
if (typeof position === "number") {
|
|
228
227
|
maxEncounteredPosition =
|
|
229
|
-
maxEncounteredPosition
|
|
228
|
+
(0, is_null_or_undefined_1.default)(maxEncounteredPosition) ? position :
|
|
230
229
|
Math.max(maxEncounteredPosition, position);
|
|
231
230
|
}
|
|
232
231
|
}
|
|
@@ -248,7 +247,7 @@ function getMaximumLastPosition(adaptationsPerType) {
|
|
|
248
247
|
}
|
|
249
248
|
finally { if (e_1) throw e_1.error; }
|
|
250
249
|
}
|
|
251
|
-
if (
|
|
250
|
+
if (!(0, is_null_or_undefined_1.default)(maxEncounteredPosition)) {
|
|
252
251
|
return maxEncounteredPosition;
|
|
253
252
|
}
|
|
254
253
|
else if (allIndexAreEmpty) {
|
|
@@ -29,10 +29,25 @@ export default function parseRepresentationIndex(representation: IRepresentation
|
|
|
29
29
|
export interface IRepresentationIndexContext {
|
|
30
30
|
/** Parsed AdaptationSet which contains the Representation. */
|
|
31
31
|
adaptation: IAdaptationSetIntermediateRepresentation;
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
/**
|
|
33
|
+
* If `false`, declared segments in the MPD might still be not completely generated.
|
|
34
|
+
* If `true`, they are completely generated.
|
|
35
|
+
*
|
|
36
|
+
* If `undefined`, the corresponding property was not set in the MPD and it is
|
|
37
|
+
* thus assumed that they are all generated.
|
|
38
|
+
* It might however be semantically different than `true` in the RxPlayer as it
|
|
39
|
+
* means that the packager didn't include that information in the MPD.
|
|
40
|
+
*/
|
|
41
|
+
availabilityTimeComplete: boolean | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* availability time offset of the concerned Adaptation.
|
|
44
|
+
*
|
|
45
|
+
* If `undefined`, the corresponding property was not set in the MPD and it is
|
|
46
|
+
* thus assumed to be equal to `0`.
|
|
47
|
+
* It might however be semantically different than `0` in the RxPlayer as it
|
|
48
|
+
* means that the packager didn't include that information in the MPD.
|
|
49
|
+
*/
|
|
50
|
+
availabilityTimeOffset: number | undefined;
|
|
36
51
|
/** Eventual URLs from which every relative URL will be based on. */
|
|
37
52
|
baseURLs: IResolvedBaseUrl[];
|
|
38
53
|
/** End time of the current Period, in seconds. */
|
|
@@ -61,8 +76,6 @@ export interface IRepresentationIndexContext {
|
|
|
61
76
|
receivedTime?: number | undefined;
|
|
62
77
|
/** Start time of the current period, in seconds. */
|
|
63
78
|
start: number;
|
|
64
|
-
/** Depth of the buffer for the whole content, in seconds. */
|
|
65
|
-
timeShiftBufferDepth?: number | undefined;
|
|
66
79
|
/**
|
|
67
80
|
* The parser should take this Representation - which is the same as this one
|
|
68
81
|
* parsed at an earlier time - as a base to speed-up the parsing process.
|
|
@@ -51,7 +51,7 @@ var indexes_1 = require("./indexes");
|
|
|
51
51
|
*/
|
|
52
52
|
function parseRepresentationIndex(representation, context) {
|
|
53
53
|
var _a, _b;
|
|
54
|
-
var availabilityTimeOffset = context.availabilityTimeOffset, manifestBoundsCalculator = context.manifestBoundsCalculator, isDynamic = context.isDynamic, periodEnd = context.end, periodStart = context.start, receivedTime = context.receivedTime,
|
|
54
|
+
var availabilityTimeOffset = context.availabilityTimeOffset, manifestBoundsCalculator = context.manifestBoundsCalculator, isDynamic = context.isDynamic, periodEnd = context.end, periodStart = context.start, receivedTime = context.receivedTime, unsafelyBaseOnPreviousRepresentation = context.unsafelyBaseOnPreviousRepresentation, inbandEventStreams = context.inbandEventStreams, isLastPeriod = context.isLastPeriod;
|
|
55
55
|
var isEMSGWhitelisted = function (inbandEvent) {
|
|
56
56
|
if (inbandEventStreams === undefined) {
|
|
57
57
|
return false;
|
|
@@ -62,8 +62,20 @@ function parseRepresentationIndex(representation, context) {
|
|
|
62
62
|
return schemeIdUri === inbandEvent.schemeIdUri;
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
|
-
var reprIndexCtxt = {
|
|
66
|
-
|
|
65
|
+
var reprIndexCtxt = {
|
|
66
|
+
availabilityTimeComplete: undefined,
|
|
67
|
+
availabilityTimeOffset: availabilityTimeOffset,
|
|
68
|
+
unsafelyBaseOnPreviousRepresentation: unsafelyBaseOnPreviousRepresentation,
|
|
69
|
+
isEMSGWhitelisted: isEMSGWhitelisted,
|
|
70
|
+
isLastPeriod: isLastPeriod,
|
|
71
|
+
manifestBoundsCalculator: manifestBoundsCalculator,
|
|
72
|
+
isDynamic: isDynamic,
|
|
73
|
+
periodEnd: periodEnd,
|
|
74
|
+
periodStart: periodStart,
|
|
75
|
+
receivedTime: receivedTime,
|
|
76
|
+
representationBitrate: representation.attributes.bitrate,
|
|
77
|
+
representationId: representation.attributes.id,
|
|
78
|
+
};
|
|
67
79
|
var representationIndex;
|
|
68
80
|
if (representation.children.segmentBase !== undefined) {
|
|
69
81
|
var segmentBase = representation.children.segmentBase;
|
|
@@ -81,11 +93,12 @@ function parseRepresentationIndex(representation, context) {
|
|
|
81
93
|
segmentTemplates.push(childSegmentTemplate);
|
|
82
94
|
}
|
|
83
95
|
var segmentTemplate = object_assign_1.default.apply(void 0, __spreadArray([{}], __read(segmentTemplates /* Ugly TS Hack */), false));
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
96
|
+
if (segmentTemplate.availabilityTimeOffset !== undefined ||
|
|
97
|
+
context.availabilityTimeOffset !== undefined) {
|
|
98
|
+
reprIndexCtxt.availabilityTimeOffset =
|
|
99
|
+
((_a = segmentTemplate.availabilityTimeOffset) !== null && _a !== void 0 ? _a : 0) +
|
|
100
|
+
((_b = context.availabilityTimeOffset) !== null && _b !== void 0 ? _b : 0);
|
|
101
|
+
}
|
|
89
102
|
representationIndex = indexes_1.TimelineRepresentationIndex
|
|
90
103
|
.isTimelineIndexArgument(segmentTemplate) ?
|
|
91
104
|
new indexes_1.TimelineRepresentationIndex(segmentTemplate, reprIndexCtxt) :
|
|
@@ -54,6 +54,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
54
54
|
var log_1 = require("../../../../log");
|
|
55
55
|
var array_find_1 = require("../../../../utils/array_find");
|
|
56
56
|
var object_assign_1 = require("../../../../utils/object_assign");
|
|
57
|
+
var convert_supplemental_codecs_1 = require("./convert_supplemental_codecs");
|
|
57
58
|
var get_hdr_information_1 = require("./get_hdr_information");
|
|
58
59
|
var parse_representation_index_1 = require("./parse_representation_index");
|
|
59
60
|
var resolve_base_urls_1 = require("./resolve_base_urls");
|
|
@@ -116,23 +117,23 @@ function getHDRInformation(_a) {
|
|
|
116
117
|
*/
|
|
117
118
|
function parseRepresentations(representationsIR, adaptation, context) {
|
|
118
119
|
var e_1, _a;
|
|
119
|
-
var _b, _c, _d, _e;
|
|
120
|
+
var _b, _c, _d, _e, _f;
|
|
120
121
|
var parsedRepresentations = [];
|
|
121
122
|
var _loop_1 = function (representation) {
|
|
122
123
|
// Compute Representation ID
|
|
123
|
-
var representationID = representation.attributes.id
|
|
124
|
+
var representationID = representation.attributes.id !== undefined ?
|
|
124
125
|
representation.attributes.id :
|
|
125
126
|
(String(representation.attributes.bitrate) +
|
|
126
|
-
(representation.attributes.height
|
|
127
|
+
(representation.attributes.height !== undefined ?
|
|
127
128
|
("-".concat(representation.attributes.height)) :
|
|
128
129
|
"") +
|
|
129
|
-
(representation.attributes.width
|
|
130
|
+
(representation.attributes.width !== undefined ?
|
|
130
131
|
("-".concat(representation.attributes.width)) :
|
|
131
132
|
"") +
|
|
132
|
-
(representation.attributes.mimeType
|
|
133
|
+
(representation.attributes.mimeType !== undefined ?
|
|
133
134
|
("-".concat(representation.attributes.mimeType)) :
|
|
134
135
|
"") +
|
|
135
|
-
(representation.attributes.codecs
|
|
136
|
+
(representation.attributes.codecs !== undefined ?
|
|
136
137
|
("-".concat(representation.attributes.codecs)) :
|
|
137
138
|
""));
|
|
138
139
|
// Avoid duplicate IDs
|
|
@@ -144,13 +145,17 @@ function parseRepresentations(representationsIR, adaptation, context) {
|
|
|
144
145
|
.unsafelyBaseOnPreviousAdaptation) === null || _b === void 0 ? void 0 : _b.getRepresentation(representationID)) !== null && _c !== void 0 ? _c : null;
|
|
145
146
|
var inbandEventStreams = combineInbandEventStreams(representation, adaptation);
|
|
146
147
|
var availabilityTimeComplete = (_d = representation.attributes.availabilityTimeComplete) !== null && _d !== void 0 ? _d : context.availabilityTimeComplete;
|
|
147
|
-
var availabilityTimeOffset =
|
|
148
|
-
|
|
148
|
+
var availabilityTimeOffset = void 0;
|
|
149
|
+
if (representation.attributes.availabilityTimeOffset !== undefined ||
|
|
150
|
+
context.availabilityTimeOffset !== undefined) {
|
|
151
|
+
availabilityTimeOffset = ((_e = representation.attributes.availabilityTimeOffset) !== null && _e !== void 0 ? _e : 0) +
|
|
152
|
+
((_f = context.availabilityTimeOffset) !== null && _f !== void 0 ? _f : 0);
|
|
153
|
+
}
|
|
149
154
|
var reprIndexCtxt = (0, object_assign_1.default)({}, context, { availabilityTimeOffset: availabilityTimeOffset, availabilityTimeComplete: availabilityTimeComplete, unsafelyBaseOnPreviousRepresentation: unsafelyBaseOnPreviousRepresentation, adaptation: adaptation, inbandEventStreams: inbandEventStreams });
|
|
150
155
|
var representationIndex = (0, parse_representation_index_1.default)(representation, reprIndexCtxt);
|
|
151
156
|
// Find bitrate
|
|
152
157
|
var representationBitrate = void 0;
|
|
153
|
-
if (representation.attributes.bitrate
|
|
158
|
+
if (representation.attributes.bitrate === undefined) {
|
|
154
159
|
log_1.default.warn("DASH: No usable bitrate found in the Representation.");
|
|
155
160
|
representationBitrate = 0;
|
|
156
161
|
}
|
|
@@ -177,45 +182,56 @@ function parseRepresentations(representationsIR, adaptation, context) {
|
|
|
177
182
|
}
|
|
178
183
|
// Add optional attributes
|
|
179
184
|
var codecs = void 0;
|
|
180
|
-
if (representation.attributes.codecs
|
|
185
|
+
if (representation.attributes.codecs !== undefined) {
|
|
181
186
|
codecs = representation.attributes.codecs;
|
|
182
187
|
}
|
|
183
|
-
else if (adaptation.attributes.codecs
|
|
188
|
+
else if (adaptation.attributes.codecs !== undefined) {
|
|
184
189
|
codecs = adaptation.attributes.codecs;
|
|
185
190
|
}
|
|
186
|
-
if (codecs
|
|
191
|
+
if (codecs !== undefined) {
|
|
187
192
|
codecs = codecs === "mp4a.40.02" ? "mp4a.40.2" : codecs;
|
|
188
193
|
parsedRepresentation.codecs = codecs;
|
|
189
194
|
}
|
|
190
|
-
|
|
195
|
+
var supplementalCodecs = void 0;
|
|
196
|
+
if (representation.attributes.supplementalCodecs !== undefined) {
|
|
197
|
+
supplementalCodecs = representation.attributes.supplementalCodecs;
|
|
198
|
+
}
|
|
199
|
+
else if (adaptation.attributes.supplementalCodecs !== undefined) {
|
|
200
|
+
supplementalCodecs = adaptation.attributes.supplementalCodecs;
|
|
201
|
+
}
|
|
202
|
+
if (supplementalCodecs !== undefined) {
|
|
203
|
+
parsedRepresentation.supplementalCodecs =
|
|
204
|
+
(0, convert_supplemental_codecs_1.convertSupplementalCodecsToRFC6381)(supplementalCodecs);
|
|
205
|
+
}
|
|
206
|
+
if (representation.attributes.frameRate !== undefined) {
|
|
191
207
|
parsedRepresentation.frameRate =
|
|
192
208
|
representation.attributes.frameRate;
|
|
193
209
|
}
|
|
194
|
-
else if (adaptation.attributes.frameRate
|
|
210
|
+
else if (adaptation.attributes.frameRate !== undefined) {
|
|
195
211
|
parsedRepresentation.frameRate =
|
|
196
212
|
adaptation.attributes.frameRate;
|
|
197
213
|
}
|
|
198
|
-
if (representation.attributes.height
|
|
214
|
+
if (representation.attributes.height !== undefined) {
|
|
199
215
|
parsedRepresentation.height =
|
|
200
216
|
representation.attributes.height;
|
|
201
217
|
}
|
|
202
|
-
else if (adaptation.attributes.height
|
|
218
|
+
else if (adaptation.attributes.height !== undefined) {
|
|
203
219
|
parsedRepresentation.height =
|
|
204
220
|
adaptation.attributes.height;
|
|
205
221
|
}
|
|
206
|
-
if (representation.attributes.mimeType
|
|
222
|
+
if (representation.attributes.mimeType !== undefined) {
|
|
207
223
|
parsedRepresentation.mimeType =
|
|
208
224
|
representation.attributes.mimeType;
|
|
209
225
|
}
|
|
210
|
-
else if (adaptation.attributes.mimeType
|
|
226
|
+
else if (adaptation.attributes.mimeType !== undefined) {
|
|
211
227
|
parsedRepresentation.mimeType =
|
|
212
228
|
adaptation.attributes.mimeType;
|
|
213
229
|
}
|
|
214
|
-
if (representation.attributes.width
|
|
230
|
+
if (representation.attributes.width !== undefined) {
|
|
215
231
|
parsedRepresentation.width =
|
|
216
232
|
representation.attributes.width;
|
|
217
233
|
}
|
|
218
|
-
else if (adaptation.attributes.width
|
|
234
|
+
else if (adaptation.attributes.width !== undefined) {
|
|
219
235
|
parsedRepresentation.width =
|
|
220
236
|
adaptation.attributes.width;
|
|
221
237
|
}
|
|
@@ -259,6 +259,9 @@ function parseAdaptationSetAttributes(root) {
|
|
|
259
259
|
case "codecs":
|
|
260
260
|
parsedAdaptation.codecs = attribute.value;
|
|
261
261
|
break;
|
|
262
|
+
case "scte214:supplementalCodecs":
|
|
263
|
+
parsedAdaptation.supplementalCodecs = attribute.value;
|
|
264
|
+
break;
|
|
262
265
|
case "codingDependency":
|
|
263
266
|
parseValue(attribute.value, { asKey: "codingDependency",
|
|
264
267
|
parser: utils_1.parseBoolean,
|
|
@@ -168,6 +168,9 @@ function parseRepresentationAttributes(representationElement) {
|
|
|
168
168
|
parser: utils_1.parseMPDInteger,
|
|
169
169
|
dashName: "qualityRanking" });
|
|
170
170
|
break;
|
|
171
|
+
case "scte214:supplementalCodecs":
|
|
172
|
+
attributes.supplementalCodecs = attr.value;
|
|
173
|
+
break;
|
|
171
174
|
case "segmentProfiles":
|
|
172
175
|
attributes.segmentProfiles = attr.value;
|
|
173
176
|
break;
|
|
@@ -217,6 +217,7 @@ export interface IAdaptationSetAttributes {
|
|
|
217
217
|
segmentAlignment?: number | boolean;
|
|
218
218
|
segmentProfiles?: string;
|
|
219
219
|
subsegmentAlignment?: number | boolean;
|
|
220
|
+
supplementalCodecs?: string;
|
|
220
221
|
width?: number;
|
|
221
222
|
availabilityTimeComplete?: boolean;
|
|
222
223
|
availabilityTimeOffset?: number;
|
|
@@ -249,6 +250,7 @@ export interface IRepresentationAttributes {
|
|
|
249
250
|
profiles?: string;
|
|
250
251
|
qualityRanking?: number;
|
|
251
252
|
segmentProfiles?: string;
|
|
253
|
+
supplementalCodecs?: string;
|
|
252
254
|
width?: number;
|
|
253
255
|
availabilityTimeComplete?: boolean;
|
|
254
256
|
availabilityTimeOffset?: number;
|
|
@@ -226,6 +226,10 @@ function generateAdaptationSetAttrParser(adaptationAttrs, linearMemory) {
|
|
|
226
226
|
adaptationAttrs.codecs =
|
|
227
227
|
(0, utils_1.parseString)(textDecoder, linearMemory.buffer, ptr, len);
|
|
228
228
|
break;
|
|
229
|
+
case 77 /* AttributeName.SupplementalCodecs */:
|
|
230
|
+
adaptationAttrs.supplementalCodecs =
|
|
231
|
+
(0, utils_1.parseString)(textDecoder, linearMemory.buffer, ptr, len);
|
|
232
|
+
break;
|
|
229
233
|
case 2 /* AttributeName.Profiles */:
|
|
230
234
|
adaptationAttrs.profiles =
|
|
231
235
|
(0, utils_1.parseString)(textDecoder, linearMemory.buffer, ptr, len);
|
|
@@ -126,6 +126,10 @@ function generateRepresentationAttrParser(representationAttrs, linearMemory) {
|
|
|
126
126
|
representationAttrs.codecs =
|
|
127
127
|
(0, utils_1.parseString)(textDecoder, linearMemory.buffer, ptr, len);
|
|
128
128
|
break;
|
|
129
|
+
case 77 /* AttributeName.SupplementalCodecs */:
|
|
130
|
+
representationAttrs.supplementalCodecs =
|
|
131
|
+
(0, utils_1.parseString)(textDecoder, linearMemory.buffer, ptr, len);
|
|
132
|
+
break;
|
|
129
133
|
case 5 /* AttributeName.CodingDependency */:
|
|
130
134
|
representationAttrs.codingDependency =
|
|
131
135
|
new DataView(linearMemory.buffer).getUint8(0) === 0;
|
|
@@ -158,7 +158,7 @@ var LocalRepresentationIndex = /** @class */ (function () {
|
|
|
158
158
|
* @returns {boolean|undefined}
|
|
159
159
|
*/
|
|
160
160
|
LocalRepresentationIndex.prototype.awaitSegmentBetween = function (start, end) {
|
|
161
|
-
if (this.
|
|
161
|
+
if (this.isStillAwaitingFutureSegments()) {
|
|
162
162
|
return false;
|
|
163
163
|
}
|
|
164
164
|
if (this._index.incomingRanges === undefined) {
|
|
@@ -180,8 +180,8 @@ var LocalRepresentationIndex = /** @class */ (function () {
|
|
|
180
180
|
LocalRepresentationIndex.prototype.isSegmentStillAvailable = function () {
|
|
181
181
|
return true;
|
|
182
182
|
};
|
|
183
|
-
LocalRepresentationIndex.prototype.
|
|
184
|
-
return this._index.isFinished;
|
|
183
|
+
LocalRepresentationIndex.prototype.isStillAwaitingFutureSegments = function () {
|
|
184
|
+
return !this._index.isFinished;
|
|
185
185
|
};
|
|
186
186
|
/**
|
|
187
187
|
* @returns {Boolean}
|
|
@@ -165,8 +165,8 @@ var MetaRepresentationIndex = /** @class */ (function () {
|
|
|
165
165
|
/**
|
|
166
166
|
* @returns {Boolean}
|
|
167
167
|
*/
|
|
168
|
-
MetaRepresentationIndex.prototype.
|
|
169
|
-
return this._wrappedIndex.
|
|
168
|
+
MetaRepresentationIndex.prototype.isStillAwaitingFutureSegments = function () {
|
|
169
|
+
return this._wrappedIndex.isStillAwaitingFutureSegments();
|
|
170
170
|
};
|
|
171
171
|
/**
|
|
172
172
|
* @returns {Boolean}
|