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
|
@@ -41,10 +41,11 @@ export default class TextTrackRenderer {
|
|
|
41
41
|
static addParsers(parsersList: IFeature[]): void;
|
|
42
42
|
private _segmentBuffer;
|
|
43
43
|
/**
|
|
44
|
-
* @param {
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
44
|
+
* @param {Object} opts
|
|
45
|
+
* @param {HTMLMediaElement} opts.videoElement - The media element the text
|
|
46
|
+
* track has to be synchronized to.
|
|
47
|
+
* @param {HTMLElement} opt.textTrackElement - The HTML element which will
|
|
48
|
+
* contain the text tracks.
|
|
48
49
|
*/
|
|
49
50
|
constructor({ videoElement, textTrackElement }: {
|
|
50
51
|
videoElement: HTMLMediaElement;
|
|
@@ -24,10 +24,11 @@ import { addFeatures, } from "../../features";
|
|
|
24
24
|
*/
|
|
25
25
|
var TextTrackRenderer = /** @class */ (function () {
|
|
26
26
|
/**
|
|
27
|
-
* @param {
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
27
|
+
* @param {Object} opts
|
|
28
|
+
* @param {HTMLMediaElement} opts.videoElement - The media element the text
|
|
29
|
+
* track has to be synchronized to.
|
|
30
|
+
* @param {HTMLElement} opt.textTrackElement - The HTML element which will
|
|
31
|
+
* contain the text tracks.
|
|
31
32
|
*/
|
|
32
33
|
function TextTrackRenderer(_a) {
|
|
33
34
|
var videoElement = _a.videoElement, textTrackElement = _a.textTrackElement;
|
|
@@ -35,12 +35,12 @@ import inferSegmentContainer from "../utils/infer_segment_container";
|
|
|
35
35
|
* @returns {Function}
|
|
36
36
|
*/
|
|
37
37
|
export default function addSegmentIntegrityChecks(segmentLoader) {
|
|
38
|
-
return function (url,
|
|
38
|
+
return function (url, context, loaderOptions, initialCancelSignal, callbacks) {
|
|
39
39
|
return new Promise(function (resolve, reject) {
|
|
40
40
|
var requestCanceller = new TaskCanceller();
|
|
41
41
|
var unlinkCanceller = requestCanceller.linkToSignal(initialCancelSignal);
|
|
42
42
|
requestCanceller.signal.register(reject);
|
|
43
|
-
segmentLoader(url,
|
|
43
|
+
segmentLoader(url, context, loaderOptions, requestCanceller.signal, __assign(__assign({}, callbacks), { onNewChunk: function (data) {
|
|
44
44
|
try {
|
|
45
45
|
trowOnIntegrityError(data);
|
|
46
46
|
callbacks.onNewChunk(data);
|
|
@@ -84,10 +84,10 @@ export default function addSegmentIntegrityChecks(segmentLoader) {
|
|
|
84
84
|
*/
|
|
85
85
|
function trowOnIntegrityError(data) {
|
|
86
86
|
if (!(data instanceof ArrayBuffer) && !(data instanceof Uint8Array) ||
|
|
87
|
-
inferSegmentContainer(
|
|
87
|
+
inferSegmentContainer(context.type, context.mimeType) !== "mp4") {
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
checkISOBMFFIntegrity(new Uint8Array(data),
|
|
90
|
+
checkISOBMFFIntegrity(new Uint8Array(data), context.segment.isInit);
|
|
91
91
|
}
|
|
92
92
|
};
|
|
93
93
|
}
|
|
@@ -22,7 +22,7 @@ import objectAssign from "../../utils/object_assign";
|
|
|
22
22
|
import request from "../../utils/request";
|
|
23
23
|
import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
|
|
24
24
|
export default function generateManifestParser(options) {
|
|
25
|
-
var
|
|
25
|
+
var referenceDateTime = options.referenceDateTime;
|
|
26
26
|
var serverTimeOffset = options.serverSyncInfos !== undefined ?
|
|
27
27
|
options.serverSyncInfos.serverTimestamp - options.serverSyncInfos.clientTime :
|
|
28
28
|
undefined;
|
|
@@ -31,12 +31,11 @@ export default function generateManifestParser(options) {
|
|
|
31
31
|
var responseData = manifestData.responseData;
|
|
32
32
|
var argClockOffset = parserOptions.externalClockOffset;
|
|
33
33
|
var url = (_a = manifestData.url) !== null && _a !== void 0 ? _a : parserOptions.originalUrl;
|
|
34
|
-
var optAggressiveMode = aggressiveMode === true;
|
|
35
34
|
var externalClockOffset = serverTimeOffset !== null && serverTimeOffset !== void 0 ? serverTimeOffset : argClockOffset;
|
|
36
35
|
var unsafelyBaseOnPreviousManifest = parserOptions.unsafeMode ?
|
|
37
36
|
parserOptions.previousManifest :
|
|
38
37
|
null;
|
|
39
|
-
var dashParserOpts = {
|
|
38
|
+
var dashParserOpts = { unsafelyBaseOnPreviousManifest: unsafelyBaseOnPreviousManifest, url: url, referenceDateTime: referenceDateTime, externalClockOffset: externalClockOffset };
|
|
40
39
|
var parsers = features.dashParsers;
|
|
41
40
|
if (parsers.wasm === null ||
|
|
42
41
|
parsers.wasm.status === "uninitialized" ||
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import features from "../../features";
|
|
17
17
|
import generateManifestLoader from "../utils/generate_manifest_loader";
|
|
18
|
-
import { imageLoader, imageParser, } from "./image_pipelines";
|
|
19
18
|
import generateManifestParser from "./manifest_parser";
|
|
20
19
|
import generateSegmentLoader from "./segment_loader";
|
|
21
20
|
import generateAudioVideoSegmentParser from "./segment_parser";
|
|
@@ -42,9 +41,7 @@ export default function (options) {
|
|
|
42
41
|
video: { loadSegment: segmentLoader,
|
|
43
42
|
parseSegment: audioVideoSegmentParser },
|
|
44
43
|
text: { loadSegment: textTrackLoader,
|
|
45
|
-
parseSegment: textTrackParser }
|
|
46
|
-
image: { loadSegment: imageLoader,
|
|
47
|
-
parseSegment: imageParser } };
|
|
44
|
+
parseSegment: textTrackParser } };
|
|
48
45
|
}
|
|
49
46
|
/**
|
|
50
47
|
* Returns true if the DASH-WASM parser is either initialized or being
|
|
@@ -19,14 +19,14 @@ import { ILoadedAudioVideoSegmentFormat, ISegmentContext, ISegmentLoader, ISegme
|
|
|
19
19
|
/**
|
|
20
20
|
* Segment loader triggered if there was no custom-defined one in the API.
|
|
21
21
|
* @param {string} url
|
|
22
|
-
* @param {Object}
|
|
22
|
+
* @param {Object} context
|
|
23
23
|
* @param {boolean} lowLatencyMode
|
|
24
24
|
* @param {Object} options
|
|
25
25
|
* @param {Object} callbacks
|
|
26
26
|
* @param {Object} cancelSignal
|
|
27
27
|
* @returns {Promise}
|
|
28
28
|
*/
|
|
29
|
-
export declare function regularSegmentLoader(url: string,
|
|
29
|
+
export declare function regularSegmentLoader(url: string, context: ISegmentContext, lowLatencyMode: boolean, options: ISegmentLoaderOptions, callbacks: ISegmentLoaderCallbacks<ILoadedAudioVideoSegmentFormat>, cancelSignal: CancellationSignal): Promise<ISegmentLoaderResultSegmentLoaded<ILoadedAudioVideoSegmentFormat> | ISegmentLoaderResultSegmentCreated<ILoadedAudioVideoSegmentFormat> | ISegmentLoaderResultChunkedComplete>;
|
|
30
30
|
/**
|
|
31
31
|
* @param {Object} config
|
|
32
32
|
* @returns {Function}
|
|
@@ -25,28 +25,28 @@ import lowLatencySegmentLoader from "./low_latency_segment_loader";
|
|
|
25
25
|
/**
|
|
26
26
|
* Segment loader triggered if there was no custom-defined one in the API.
|
|
27
27
|
* @param {string} url
|
|
28
|
-
* @param {Object}
|
|
28
|
+
* @param {Object} context
|
|
29
29
|
* @param {boolean} lowLatencyMode
|
|
30
30
|
* @param {Object} options
|
|
31
31
|
* @param {Object} callbacks
|
|
32
32
|
* @param {Object} cancelSignal
|
|
33
33
|
* @returns {Promise}
|
|
34
34
|
*/
|
|
35
|
-
export function regularSegmentLoader(url,
|
|
36
|
-
if (
|
|
37
|
-
return initSegmentLoader(url,
|
|
35
|
+
export function regularSegmentLoader(url, context, lowLatencyMode, options, callbacks, cancelSignal) {
|
|
36
|
+
if (context.segment.isInit) {
|
|
37
|
+
return initSegmentLoader(url, context.segment, options, cancelSignal, callbacks);
|
|
38
38
|
}
|
|
39
|
-
var containerType = inferSegmentContainer(
|
|
39
|
+
var containerType = inferSegmentContainer(context.type, context.mimeType);
|
|
40
40
|
if (lowLatencyMode && (containerType === "mp4" || containerType === undefined)) {
|
|
41
41
|
if (fetchIsSupported()) {
|
|
42
|
-
return lowLatencySegmentLoader(url,
|
|
42
|
+
return lowLatencySegmentLoader(url, context, options, callbacks, cancelSignal);
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
45
|
warnOnce("DASH: Your browser does not have the fetch API. You will have " +
|
|
46
46
|
"a higher chance of rebuffering when playing close to the live edge");
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
var segment =
|
|
49
|
+
var segment = context.segment;
|
|
50
50
|
return request({ url: url, responseType: "arraybuffer",
|
|
51
51
|
headers: segment.range !== undefined ?
|
|
52
52
|
{ Range: byteRange(segment.range) } :
|
|
@@ -65,24 +65,21 @@ export default function generateSegmentLoader(_a) {
|
|
|
65
65
|
addSegmentIntegrityChecks(segmentLoader);
|
|
66
66
|
/**
|
|
67
67
|
* @param {Object|null} wantedCdn
|
|
68
|
+
* @param {Object} context
|
|
69
|
+
* @param {Object} options
|
|
70
|
+
* @param {Object} cancelSignal
|
|
71
|
+
* @param {Object} callbacks
|
|
68
72
|
* @returns {Promise.<Object>}
|
|
69
73
|
*/
|
|
70
|
-
function segmentLoader(wantedCdn,
|
|
71
|
-
var url = constructSegmentUrl(wantedCdn,
|
|
74
|
+
function segmentLoader(wantedCdn, context, options, cancelSignal, callbacks) {
|
|
75
|
+
var url = constructSegmentUrl(wantedCdn, context.segment);
|
|
72
76
|
if (url == null) {
|
|
73
77
|
return Promise.resolve({ resultType: "segment-created",
|
|
74
78
|
resultData: null });
|
|
75
79
|
}
|
|
76
80
|
if (lowLatencyMode || customSegmentLoader === undefined) {
|
|
77
|
-
return regularSegmentLoader(url,
|
|
81
|
+
return regularSegmentLoader(url, context, lowLatencyMode, options, callbacks, cancelSignal);
|
|
78
82
|
}
|
|
79
|
-
var args = { adaptation: content.adaptation,
|
|
80
|
-
manifest: content.manifest,
|
|
81
|
-
period: content.period,
|
|
82
|
-
representation: content.representation,
|
|
83
|
-
segment: content.segment,
|
|
84
|
-
transport: "dash",
|
|
85
|
-
timeout: options.timeout, url: url };
|
|
86
83
|
return new Promise(function (res, rej) {
|
|
87
84
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
88
85
|
var hasFinished = false;
|
|
@@ -106,7 +103,7 @@ export default function generateSegmentLoader(_a) {
|
|
|
106
103
|
* @param {*} err - The corresponding error encountered
|
|
107
104
|
*/
|
|
108
105
|
var reject = function (err) {
|
|
109
|
-
var _a, _b
|
|
106
|
+
var _a, _b;
|
|
110
107
|
if (hasFinished || cancelSignal.isCancelled()) {
|
|
111
108
|
return;
|
|
112
109
|
}
|
|
@@ -116,7 +113,7 @@ export default function generateSegmentLoader(_a) {
|
|
|
116
113
|
var castedErr = err;
|
|
117
114
|
var message = (_a = castedErr === null || castedErr === void 0 ? void 0 : castedErr.message) !== null && _a !== void 0 ? _a : "Unknown error when fetching a DASH segment through a " +
|
|
118
115
|
"custom segmentLoader.";
|
|
119
|
-
var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false,
|
|
116
|
+
var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
|
|
120
117
|
rej(emittedErr);
|
|
121
118
|
};
|
|
122
119
|
var progress = function (_args) {
|
|
@@ -137,10 +134,19 @@ export default function generateSegmentLoader(_a) {
|
|
|
137
134
|
}
|
|
138
135
|
hasFinished = true;
|
|
139
136
|
cancelSignal.deregister(abortCustomLoader);
|
|
140
|
-
regularSegmentLoader(url,
|
|
137
|
+
regularSegmentLoader(url, context, lowLatencyMode, options, callbacks, cancelSignal)
|
|
141
138
|
.then(res, rej);
|
|
142
139
|
};
|
|
143
140
|
var customCallbacks = { reject: reject, resolve: resolve, progress: progress, fallback: fallback };
|
|
141
|
+
var byteRanges;
|
|
142
|
+
if (context.segment.range !== undefined) {
|
|
143
|
+
byteRanges = [context.segment.range];
|
|
144
|
+
if (context.segment.indexRange !== undefined) {
|
|
145
|
+
byteRanges.push(context.segment.indexRange);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
var args = { isInit: context.segment.isInit,
|
|
149
|
+
timeout: options.timeout, byteRanges: byteRanges, type: context.type, url: url };
|
|
144
150
|
var abort = customSegmentLoader(args, customCallbacks);
|
|
145
151
|
cancelSignal.register(abortCustomLoader);
|
|
146
152
|
/**
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
import { getMDHDTimescale, getSegmentsFromSidx, takePSSHOut, } from "../../parsers/containers/isobmff";
|
|
17
17
|
import { getKeyIdFromInitSegment, parseEmsgBoxes, } from "../../parsers/containers/isobmff/utils";
|
|
18
18
|
import { getSegmentsFromCues, getTimeCodeScale, } from "../../parsers/containers/matroska";
|
|
19
|
-
import { BaseRepresentationIndex } from "../../parsers/manifest/dash";
|
|
20
19
|
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
21
20
|
import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
|
|
22
21
|
import inferSegmentContainer from "../utils/infer_segment_container";
|
|
@@ -27,17 +26,17 @@ import getEventsOutOfEMSGs from "./get_events_out_of_emsgs";
|
|
|
27
26
|
*/
|
|
28
27
|
export default function generateAudioVideoSegmentParser(_a) {
|
|
29
28
|
var __priv_patchLastSegmentInSidx = _a.__priv_patchLastSegmentInSidx;
|
|
30
|
-
return function audioVideoSegmentParser(loadedSegment,
|
|
29
|
+
return function audioVideoSegmentParser(loadedSegment, context, initTimescale) {
|
|
31
30
|
var _a, _b;
|
|
32
|
-
var
|
|
31
|
+
var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
|
|
33
32
|
var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
|
|
34
|
-
var appendWindow = [
|
|
33
|
+
var appendWindow = [periodStart, periodEnd];
|
|
35
34
|
if (data === null) {
|
|
36
35
|
if (segment.isInit) {
|
|
37
36
|
return { segmentType: "init",
|
|
38
37
|
initializationData: null,
|
|
39
38
|
initializationDataSize: 0,
|
|
40
|
-
|
|
39
|
+
protectionData: [],
|
|
41
40
|
initTimescale: undefined };
|
|
42
41
|
}
|
|
43
42
|
return { segmentType: "media",
|
|
@@ -45,14 +44,14 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
45
44
|
chunkSize: 0,
|
|
46
45
|
chunkInfos: null,
|
|
47
46
|
chunkOffset: 0,
|
|
48
|
-
|
|
47
|
+
protectionData: [], appendWindow: appendWindow };
|
|
49
48
|
}
|
|
50
49
|
var chunkData = data instanceof Uint8Array ? data :
|
|
51
50
|
new Uint8Array(data);
|
|
52
|
-
var containerType = inferSegmentContainer(
|
|
51
|
+
var containerType = inferSegmentContainer(context.type, context.mimeType);
|
|
53
52
|
// TODO take a look to check if this is an ISOBMFF/webm?
|
|
54
53
|
var seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
|
|
55
|
-
var
|
|
54
|
+
var protectionData = [];
|
|
56
55
|
if (seemsToBeMP4) {
|
|
57
56
|
var psshInfo = takePSSHOut(chunkData);
|
|
58
57
|
var keyId = void 0;
|
|
@@ -60,7 +59,7 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
60
59
|
keyId = (_a = getKeyIdFromInitSegment(chunkData)) !== null && _a !== void 0 ? _a : undefined;
|
|
61
60
|
}
|
|
62
61
|
if (psshInfo.length > 0 || keyId !== undefined) {
|
|
63
|
-
|
|
62
|
+
protectionData.push({ initDataType: "cenc", keyId: keyId, initData: psshInfo });
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
if (!segment.isInit) {
|
|
@@ -77,23 +76,23 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
77
76
|
}
|
|
78
77
|
return segment.privateInfos.isEMSGWhitelisted(evt);
|
|
79
78
|
});
|
|
80
|
-
var events = getEventsOutOfEMSGs(whitelistedEMSGs,
|
|
79
|
+
var events = getEventsOutOfEMSGs(whitelistedEMSGs, context.manifestPublishTime);
|
|
81
80
|
if (events !== undefined) {
|
|
82
81
|
var needsManifestRefresh = events.needsManifestRefresh, inbandEvents = events.inbandEvents;
|
|
83
|
-
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, appendWindow: appendWindow, inbandEvents: inbandEvents,
|
|
82
|
+
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, appendWindow: appendWindow, inbandEvents: inbandEvents, protectionData: protectionData, needsManifestRefresh: needsManifestRefresh };
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
85
|
}
|
|
87
|
-
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset,
|
|
86
|
+
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: protectionData, appendWindow: appendWindow };
|
|
88
87
|
}
|
|
89
88
|
// we're handling an initialization segment
|
|
90
89
|
var indexRange = segment.indexRange;
|
|
91
|
-
var
|
|
90
|
+
var segmentList;
|
|
92
91
|
if (containerType === "webm") {
|
|
93
|
-
|
|
92
|
+
segmentList = getSegmentsFromCues(chunkData, 0);
|
|
94
93
|
}
|
|
95
94
|
else if (seemsToBeMP4) {
|
|
96
|
-
|
|
95
|
+
segmentList = getSegmentsFromSidx(chunkData, Array.isArray(indexRange) ?
|
|
97
96
|
indexRange[0] :
|
|
98
97
|
0);
|
|
99
98
|
// This is a very specific handling for streams we know have a very
|
|
@@ -104,19 +103,14 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
104
103
|
// TODO Cleaner way? I tried to always check the obtained segment after
|
|
105
104
|
// a byte-range request but it leads to a lot of code.
|
|
106
105
|
if (__priv_patchLastSegmentInSidx === true &&
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
var lastSegment =
|
|
106
|
+
segmentList !== null &&
|
|
107
|
+
segmentList.length > 0) {
|
|
108
|
+
var lastSegment = segmentList[segmentList.length - 1];
|
|
110
109
|
if (Array.isArray(lastSegment.range)) {
|
|
111
110
|
lastSegment.range[1] = Infinity;
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
}
|
|
115
|
-
if (representation.index instanceof BaseRepresentationIndex &&
|
|
116
|
-
nextSegments !== null &&
|
|
117
|
-
nextSegments.length > 0) {
|
|
118
|
-
representation.index.initializeIndex(nextSegments);
|
|
119
|
-
}
|
|
120
114
|
var timescale = seemsToBeMP4 ? getMDHDTimescale(chunkData) :
|
|
121
115
|
containerType === "webm" ? getTimeCodeScale(chunkData, 0) :
|
|
122
116
|
undefined;
|
|
@@ -124,6 +118,7 @@ export default function generateAudioVideoSegmentParser(_a) {
|
|
|
124
118
|
timescale;
|
|
125
119
|
return { segmentType: "init",
|
|
126
120
|
initializationData: chunkData,
|
|
127
|
-
initializationDataSize: chunkData.length,
|
|
121
|
+
initializationDataSize: chunkData.length, protectionData: protectionData, initTimescale: parsedTimescale,
|
|
122
|
+
segmentList: segmentList !== null && segmentList !== void 0 ? segmentList : undefined };
|
|
128
123
|
};
|
|
129
124
|
}
|
|
@@ -32,14 +32,14 @@ export default function generateTextTrackLoader(_a) {
|
|
|
32
32
|
addSegmentIntegrityChecks(textTrackLoader);
|
|
33
33
|
/**
|
|
34
34
|
* @param {Object|null} wantedCdn
|
|
35
|
-
* @param {Object}
|
|
35
|
+
* @param {Object} context
|
|
36
36
|
* @param {Object} options
|
|
37
37
|
* @param {Object} cancelSignal
|
|
38
38
|
* @param {Object} callbacks
|
|
39
39
|
* @returns {Promise}
|
|
40
40
|
*/
|
|
41
|
-
function textTrackLoader(wantedCdn,
|
|
42
|
-
var
|
|
41
|
+
function textTrackLoader(wantedCdn, context, options, cancelSignal, callbacks) {
|
|
42
|
+
var segment = context.segment;
|
|
43
43
|
var range = segment.range;
|
|
44
44
|
var url = constructSegmentUrl(wantedCdn, segment);
|
|
45
45
|
if (url === null) {
|
|
@@ -49,11 +49,11 @@ export default function generateTextTrackLoader(_a) {
|
|
|
49
49
|
if (segment.isInit) {
|
|
50
50
|
return initSegmentLoader(url, segment, options, cancelSignal, callbacks);
|
|
51
51
|
}
|
|
52
|
-
var containerType = inferSegmentContainer(
|
|
52
|
+
var containerType = inferSegmentContainer(context.type, context.mimeType);
|
|
53
53
|
var seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
|
|
54
54
|
if (lowLatencyMode && seemsToBeMP4) {
|
|
55
55
|
if (fetchIsSupported()) {
|
|
56
|
-
return lowLatencySegmentLoader(url,
|
|
56
|
+
return lowLatencySegmentLoader(url, context, options, callbacks, cancelSignal);
|
|
57
57
|
}
|
|
58
58
|
else {
|
|
59
59
|
warnOnce("DASH: Your browser does not have the fetch API. You will have " +
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { getMDHDTimescale, getSegmentsFromSidx, } from "../../parsers/containers/isobmff";
|
|
17
|
-
import { BaseRepresentationIndex } from "../../parsers/manifest/dash";
|
|
18
17
|
import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
|
|
19
18
|
import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
|
|
20
19
|
import inferSegmentContainer from "../utils/infer_segment_container";
|
|
@@ -25,7 +24,7 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
|
|
|
25
24
|
* @param {ArrayBuffer|Uint8Array|string} data - The segment data.
|
|
26
25
|
* @param {boolean} isChunked - If `true`, the `data` may contain only a
|
|
27
26
|
* decodable subpart of the full data in the linked segment.
|
|
28
|
-
* @param {Object}
|
|
27
|
+
* @param {Object} context - Object describing the context of the given
|
|
29
28
|
* segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
|
|
30
29
|
* `Manifest` it is a part of etc.
|
|
31
30
|
* @param {number|undefined} initTimescale - `timescale` value - encountered
|
|
@@ -38,15 +37,15 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
|
|
|
38
37
|
* For more information on that, look at the code using it.
|
|
39
38
|
* @returns {Object}
|
|
40
39
|
*/
|
|
41
|
-
function parseISOBMFFEmbeddedTextTrack(data, isChunked,
|
|
40
|
+
function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale, __priv_patchLastSegmentInSidx) {
|
|
42
41
|
var _a;
|
|
43
|
-
var
|
|
42
|
+
var segment = context.segment;
|
|
44
43
|
var isInit = segment.isInit, indexRange = segment.indexRange;
|
|
45
44
|
var chunkBytes = typeof data === "string" ? strToUtf8(data) :
|
|
46
45
|
data instanceof Uint8Array ? data :
|
|
47
46
|
new Uint8Array(data);
|
|
48
47
|
if (isInit) {
|
|
49
|
-
var
|
|
48
|
+
var segmentList = getSegmentsFromSidx(chunkBytes, Array.isArray(indexRange) ? indexRange[0] :
|
|
50
49
|
0);
|
|
51
50
|
// This is a very specific handling for streams we know have a very
|
|
52
51
|
// specific problem at Canal+: The last reference gives a truncated
|
|
@@ -56,30 +55,26 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale,
|
|
|
56
55
|
// TODO Cleaner way? I tried to always check the obtained segment after
|
|
57
56
|
// a byte-range request but it leads to a lot of code.
|
|
58
57
|
if (__priv_patchLastSegmentInSidx === true &&
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
var lastSegment =
|
|
58
|
+
segmentList !== null &&
|
|
59
|
+
segmentList.length > 0) {
|
|
60
|
+
var lastSegment = segmentList[segmentList.length - 1];
|
|
62
61
|
if (Array.isArray(lastSegment.range)) {
|
|
63
62
|
lastSegment.range[1] = Infinity;
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
var mdhdTimescale = getMDHDTimescale(chunkBytes);
|
|
67
|
-
if (representation.index instanceof BaseRepresentationIndex &&
|
|
68
|
-
sidxSegments !== null &&
|
|
69
|
-
sidxSegments.length > 0) {
|
|
70
|
-
representation.index.initializeIndex(sidxSegments);
|
|
71
|
-
}
|
|
72
66
|
return { segmentType: "init",
|
|
73
67
|
initializationData: null,
|
|
74
68
|
initializationDataSize: 0,
|
|
75
|
-
|
|
76
|
-
initTimescale: mdhdTimescale
|
|
69
|
+
protectionData: [],
|
|
70
|
+
initTimescale: mdhdTimescale,
|
|
71
|
+
segmentList: segmentList !== null && segmentList !== void 0 ? segmentList : undefined };
|
|
77
72
|
}
|
|
78
73
|
var chunkInfos = getISOBMFFTimingInfos(chunkBytes, isChunked, segment, initTimescale);
|
|
79
|
-
var chunkData = getISOBMFFEmbeddedTextTrackData(
|
|
74
|
+
var chunkData = getISOBMFFEmbeddedTextTrackData(context, chunkBytes, chunkInfos, isChunked);
|
|
80
75
|
var chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
|
|
81
|
-
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset,
|
|
82
|
-
appendWindow: [
|
|
76
|
+
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: [],
|
|
77
|
+
appendWindow: [context.periodStart, context.periodEnd] };
|
|
83
78
|
}
|
|
84
79
|
/**
|
|
85
80
|
* Parse TextTrack data when it is in plain text form.
|
|
@@ -87,19 +82,19 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale,
|
|
|
87
82
|
* @param {ArrayBuffer|Uint8Array|string} data - The segment data.
|
|
88
83
|
* @param {boolean} isChunked - If `true`, the `data` may contain only a
|
|
89
84
|
* decodable subpart of the full data in the linked segment.
|
|
90
|
-
* @param {Object}
|
|
85
|
+
* @param {Object} context - Object describing the context of the given
|
|
91
86
|
* segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
|
|
92
87
|
* `Manifest` it is a part of etc.
|
|
93
88
|
* @returns {Object}
|
|
94
89
|
*/
|
|
95
|
-
function parsePlainTextTrack(data, isChunked,
|
|
96
|
-
var
|
|
90
|
+
function parsePlainTextTrack(data, isChunked, context) {
|
|
91
|
+
var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
|
|
97
92
|
var _a = segment.timestampOffset, timestampOffset = _a === void 0 ? 0 : _a;
|
|
98
93
|
if (segment.isInit) {
|
|
99
94
|
return { segmentType: "init",
|
|
100
95
|
initializationData: null,
|
|
101
96
|
initializationDataSize: 0,
|
|
102
|
-
|
|
97
|
+
protectionData: [],
|
|
103
98
|
initTimescale: undefined };
|
|
104
99
|
}
|
|
105
100
|
var textTrackData;
|
|
@@ -113,11 +108,11 @@ function parsePlainTextTrack(data, isChunked, content) {
|
|
|
113
108
|
else {
|
|
114
109
|
textTrackData = data;
|
|
115
110
|
}
|
|
116
|
-
var chunkData = getPlainTextTrackData(
|
|
111
|
+
var chunkData = getPlainTextTrackData(context, textTrackData, isChunked);
|
|
117
112
|
return { segmentType: "media", chunkData: chunkData, chunkSize: chunkSize, chunkInfos: null,
|
|
118
113
|
chunkOffset: timestampOffset,
|
|
119
|
-
|
|
120
|
-
appendWindow: [
|
|
114
|
+
protectionData: [],
|
|
115
|
+
appendWindow: [periodStart, periodEnd] };
|
|
121
116
|
}
|
|
122
117
|
/**
|
|
123
118
|
* Generate a "segment parser" for DASH text tracks.
|
|
@@ -134,36 +129,36 @@ export default function generateTextTrackParser(_a) {
|
|
|
134
129
|
* @param {number|undefined} initTimescale
|
|
135
130
|
* @returns {Object}
|
|
136
131
|
*/
|
|
137
|
-
return function textTrackParser(loadedSegment,
|
|
132
|
+
return function textTrackParser(loadedSegment, context, initTimescale) {
|
|
138
133
|
var _a;
|
|
139
|
-
var
|
|
134
|
+
var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
|
|
140
135
|
var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
|
|
141
136
|
if (data === null) {
|
|
142
137
|
// No data, just return an empty placeholder object
|
|
143
138
|
return segment.isInit ? { segmentType: "init",
|
|
144
139
|
initializationData: null,
|
|
145
140
|
initializationDataSize: 0,
|
|
146
|
-
|
|
141
|
+
protectionData: [],
|
|
147
142
|
initTimescale: undefined } :
|
|
148
143
|
{ segmentType: "media",
|
|
149
144
|
chunkData: null,
|
|
150
145
|
chunkSize: 0,
|
|
151
146
|
chunkInfos: null,
|
|
152
147
|
chunkOffset: (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0,
|
|
153
|
-
|
|
154
|
-
appendWindow: [
|
|
148
|
+
protectionData: [],
|
|
149
|
+
appendWindow: [periodStart, periodEnd] };
|
|
155
150
|
}
|
|
156
|
-
var containerType = inferSegmentContainer(
|
|
151
|
+
var containerType = inferSegmentContainer(context.type, context.mimeType);
|
|
157
152
|
// TODO take a look to check if this is an ISOBMFF/webm when undefined?
|
|
158
153
|
if (containerType === "webm") {
|
|
159
154
|
// TODO Handle webm containers
|
|
160
155
|
throw new Error("Text tracks with a WEBM container are not yet handled.");
|
|
161
156
|
}
|
|
162
157
|
else if (containerType === "mp4") {
|
|
163
|
-
return parseISOBMFFEmbeddedTextTrack(data, isChunked,
|
|
158
|
+
return parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale, __priv_patchLastSegmentInSidx);
|
|
164
159
|
}
|
|
165
160
|
else {
|
|
166
|
-
return parsePlainTextTrack(data, isChunked,
|
|
161
|
+
return parsePlainTextTrack(data, isChunked, context);
|
|
167
162
|
}
|
|
168
163
|
};
|
|
169
164
|
}
|
|
@@ -57,17 +57,8 @@ export default function getLocalManifestPipelines(transportOptions) {
|
|
|
57
57
|
parseSegment: segmentParser };
|
|
58
58
|
var textTrackPipeline = { loadSegment: segmentLoader,
|
|
59
59
|
parseSegment: textTrackParser };
|
|
60
|
-
var imageTrackPipeline = {
|
|
61
|
-
loadSegment: function () {
|
|
62
|
-
throw new Error("Images track not supported in local transport.");
|
|
63
|
-
},
|
|
64
|
-
parseSegment: function () {
|
|
65
|
-
throw new Error("Images track not supported in local transport.");
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
60
|
return { manifest: manifestPipeline,
|
|
69
61
|
audio: segmentPipeline,
|
|
70
62
|
video: segmentPipeline,
|
|
71
|
-
text: textTrackPipeline
|
|
72
|
-
image: imageTrackPipeline };
|
|
63
|
+
text: textTrackPipeline };
|
|
73
64
|
}
|
|
@@ -92,7 +92,7 @@ function loadSegment(segment, customSegmentLoader, cancelSignal) {
|
|
|
92
92
|
* @param {*} err - The corresponding error encountered
|
|
93
93
|
*/
|
|
94
94
|
var reject = function (err) {
|
|
95
|
-
var _a, _b
|
|
95
|
+
var _a, _b;
|
|
96
96
|
if (hasFinished || cancelSignal.isCancelled()) {
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
@@ -101,7 +101,7 @@ function loadSegment(segment, customSegmentLoader, cancelSignal) {
|
|
|
101
101
|
var castedErr = err;
|
|
102
102
|
var message = (_a = castedErr === null || castedErr === void 0 ? void 0 : castedErr.message) !== null && _a !== void 0 ? _a : "Unknown error when fetching a local segment through a " +
|
|
103
103
|
"custom segmentLoader.";
|
|
104
|
-
var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false,
|
|
104
|
+
var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
|
|
105
105
|
rej(emittedErr);
|
|
106
106
|
};
|
|
107
107
|
var abort = customSegmentLoader(segment, { resolve: resolve, reject: reject });
|
|
@@ -17,4 +17,4 @@ import { ISegmentContext, ISegmentParserParsedInitChunk, ISegmentParserParsedMed
|
|
|
17
17
|
export default function segmentParser(loadedSegment: {
|
|
18
18
|
data: ArrayBuffer | Uint8Array | null;
|
|
19
19
|
isChunked: boolean;
|
|
20
|
-
},
|
|
20
|
+
}, context: ISegmentContext, initTimescale: number | undefined): ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array | null> | ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array | null>;
|