rx-player 4.4.0 → 4.4.1-dev.2025101500
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 +7 -0
- package/README.md +52 -113
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/core/{main/common → entry}/FreezeResolver.d.ts +3 -3
- package/dist/commonjs/core/entry/FreezeResolver.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/FreezeResolver.js +3 -3
- package/dist/{es2017/core/main/worker → commonjs/core/entry}/content_preparer.d.ts +22 -15
- package/dist/commonjs/core/entry/content_preparer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker → entry}/content_preparer.js +62 -64
- package/dist/{es2017/core/main/common → commonjs/core/entry}/content_time_boundaries_observer.d.ts +5 -5
- package/dist/commonjs/core/entry/content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/content_time_boundaries_observer.js +6 -6
- package/dist/commonjs/core/entry/core_entry.d.ts +36 -0
- package/dist/commonjs/core/entry/core_entry.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker/worker_main.js → entry/core_entry.js} +192 -153
- package/dist/commonjs/core/{main/worker/worker_text_displayer_interface.d.ts → entry/core_text_displayer_interface.d.ts} +11 -11
- package/dist/commonjs/core/entry/core_text_displayer_interface.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker/worker_text_displayer_interface.js → entry/core_text_displayer_interface.js} +22 -22
- package/dist/commonjs/core/{main/common → entry}/create_content_time_boundaries_observer.d.ts +6 -6
- package/dist/commonjs/core/entry/create_content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/create_content_time_boundaries_observer.js +1 -1
- package/dist/commonjs/core/{main/common → entry}/get_buffered_data_per_media_buffer.d.ts +4 -4
- package/dist/commonjs/core/entry/get_buffered_data_per_media_buffer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/get_buffered_data_per_media_buffer.js +1 -1
- package/dist/{es2017/core/main/common → commonjs/core/entry}/get_thumbnail_data.d.ts +3 -3
- package/dist/commonjs/core/entry/get_thumbnail_data.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/get_thumbnail_data.js +2 -2
- package/dist/commonjs/core/entry/index.d.ts +5 -0
- package/dist/commonjs/core/entry/index.d.ts.map +1 -0
- package/dist/commonjs/core/entry/index.js +4 -0
- package/dist/{es2017/core/main/common → commonjs/core/entry}/synchronize_sinks_on_observation.d.ts +2 -2
- package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker → entry}/track_choice_setter.d.ts +4 -4
- package/dist/commonjs/core/entry/track_choice_setter.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker → entry}/track_choice_setter.js +4 -4
- package/dist/commonjs/core/entry/utils.d.ts +3 -0
- package/dist/commonjs/core/entry/utils.d.ts.map +1 -0
- package/dist/commonjs/core/entry/utils.js +11 -0
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +17 -0
- package/dist/commonjs/core/types.d.ts +519 -1
- package/dist/commonjs/core/types.d.ts.map +1 -1
- package/dist/commonjs/core/types.js +1 -0
- package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
- package/dist/commonjs/experimental/features/local.js +7 -1
- package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
- package/dist/commonjs/experimental/features/metaplaylist.js +7 -1
- package/dist/commonjs/experimental/features/multi_thread.d.ts.map +1 -1
- package/dist/commonjs/experimental/features/multi_thread.js +6 -2
- package/dist/commonjs/features/features_object.js +1 -1
- package/dist/commonjs/features/list/dash.d.ts.map +1 -1
- package/dist/commonjs/features/list/dash.js +7 -1
- package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
- package/dist/commonjs/features/list/dash_wasm.js +7 -1
- package/dist/commonjs/features/list/media_source_main.d.ts.map +1 -1
- package/dist/commonjs/features/list/media_source_main.js +7 -1
- package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
- package/dist/commonjs/features/list/smooth.js +7 -1
- package/dist/commonjs/features/types.d.ts +20 -4
- package/dist/commonjs/features/types.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +39 -42
- package/dist/commonjs/main_thread/core_interface/base.d.ts +13 -0
- package/dist/commonjs/main_thread/core_interface/base.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/base.js +32 -0
- package/dist/commonjs/main_thread/core_interface/monothread.d.ts +13 -0
- package/dist/commonjs/main_thread/core_interface/monothread.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/monothread.js +56 -0
- package/dist/commonjs/main_thread/core_interface/multithread.d.ts +25 -0
- package/dist/commonjs/main_thread/core_interface/multithread.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/multithread.js +67 -0
- package/dist/commonjs/main_thread/core_interface/types.d.ts +6 -0
- package/dist/commonjs/main_thread/core_interface/types.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/types.js +2 -0
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +166 -108
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +1492 -919
- package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +2 -1
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/commonjs/main_thread/types.d.ts +537 -0
- package/dist/commonjs/main_thread/types.d.ts.map +1 -1
- package/dist/commonjs/manifest/utils.d.ts.map +1 -1
- package/dist/commonjs/manifest/utils.js +18 -4
- package/dist/commonjs/mse/worker_media_source_interface.d.ts +2 -2
- package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
- package/dist/commonjs/mse/worker_media_source_interface.js +12 -12
- package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/create_parser.js +31 -27
- package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts +3 -2
- package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.js +16 -7
- package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts +3 -2
- package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.js +37 -6
- package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts +3 -2
- package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +28 -5
- package/dist/{es2017/playback_observer/worker_playback_observer.d.ts → commonjs/playback_observer/core_playback_observer.d.ts} +8 -8
- package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +1 -0
- package/dist/commonjs/playback_observer/{worker_playback_observer.js → core_playback_observer.js} +13 -13
- package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
- package/dist/commonjs/transports/smooth/pipelines.js +25 -3
- package/dist/commonjs/worker_entry_point.js +62 -2
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/core/{main/common → entry}/FreezeResolver.d.ts +3 -3
- package/dist/es2017/core/entry/FreezeResolver.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/FreezeResolver.js +3 -3
- package/dist/{commonjs/core/main/worker → es2017/core/entry}/content_preparer.d.ts +22 -15
- package/dist/es2017/core/entry/content_preparer.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker → entry}/content_preparer.js +53 -55
- package/dist/{commonjs/core/main/common → es2017/core/entry}/content_time_boundaries_observer.d.ts +5 -5
- package/dist/es2017/core/entry/content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/content_time_boundaries_observer.js +6 -6
- package/dist/es2017/core/entry/core_entry.d.ts +36 -0
- package/dist/es2017/core/entry/core_entry.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker/worker_main.js → entry/core_entry.js} +153 -114
- package/dist/es2017/core/{main/worker/worker_text_displayer_interface.d.ts → entry/core_text_displayer_interface.d.ts} +11 -11
- package/dist/es2017/core/entry/core_text_displayer_interface.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker/worker_text_displayer_interface.js → entry/core_text_displayer_interface.js} +10 -10
- package/dist/es2017/core/{main/common → entry}/create_content_time_boundaries_observer.d.ts +6 -6
- package/dist/es2017/core/entry/create_content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/create_content_time_boundaries_observer.js +1 -1
- package/dist/es2017/core/{main/common → entry}/get_buffered_data_per_media_buffer.d.ts +4 -4
- package/dist/es2017/core/entry/get_buffered_data_per_media_buffer.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/get_buffered_data_per_media_buffer.js +1 -1
- package/dist/{commonjs/core/main/common → es2017/core/entry}/get_thumbnail_data.d.ts +3 -3
- package/dist/es2017/core/entry/get_thumbnail_data.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/get_thumbnail_data.js +2 -2
- package/dist/es2017/core/entry/index.d.ts +5 -0
- package/dist/es2017/core/entry/index.d.ts.map +1 -0
- package/dist/es2017/core/entry/index.js +2 -0
- package/dist/{commonjs/core/main/common → es2017/core/entry}/synchronize_sinks_on_observation.d.ts +2 -2
- package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker → entry}/track_choice_setter.d.ts +4 -4
- package/dist/es2017/core/entry/track_choice_setter.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker → entry}/track_choice_setter.js +4 -4
- package/dist/es2017/core/entry/utils.d.ts +3 -0
- package/dist/es2017/core/entry/utils.d.ts.map +1 -0
- package/dist/es2017/core/entry/utils.js +8 -0
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +18 -1
- package/dist/es2017/core/types.d.ts +519 -1
- package/dist/es2017/core/types.d.ts.map +1 -1
- package/dist/es2017/core/types.js +1 -0
- package/dist/es2017/experimental/features/local.d.ts.map +1 -1
- package/dist/es2017/experimental/features/local.js +7 -1
- package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
- package/dist/es2017/experimental/features/metaplaylist.js +7 -1
- package/dist/es2017/experimental/features/multi_thread.d.ts.map +1 -1
- package/dist/es2017/experimental/features/multi_thread.js +6 -2
- package/dist/es2017/features/features_object.js +1 -1
- package/dist/es2017/features/list/dash.d.ts.map +1 -1
- package/dist/es2017/features/list/dash.js +7 -1
- package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
- package/dist/es2017/features/list/dash_wasm.js +7 -1
- package/dist/es2017/features/list/media_source_main.d.ts.map +1 -1
- package/dist/es2017/features/list/media_source_main.js +7 -1
- package/dist/es2017/features/list/smooth.d.ts.map +1 -1
- package/dist/es2017/features/list/smooth.js +7 -1
- package/dist/es2017/features/types.d.ts +20 -4
- package/dist/es2017/features/types.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.js +40 -43
- package/dist/es2017/main_thread/core_interface/base.d.ts +13 -0
- package/dist/es2017/main_thread/core_interface/base.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/base.js +28 -0
- package/dist/es2017/main_thread/core_interface/monothread.d.ts +13 -0
- package/dist/es2017/main_thread/core_interface/monothread.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/monothread.js +32 -0
- package/dist/es2017/main_thread/core_interface/multithread.d.ts +25 -0
- package/dist/es2017/main_thread/core_interface/multithread.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/multithread.js +45 -0
- package/dist/es2017/main_thread/core_interface/types.d.ts +6 -0
- package/dist/es2017/main_thread/core_interface/types.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/types.js +1 -0
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +166 -108
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +1405 -760
- package/dist/es2017/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/utils/create_core_playback_observer.js +2 -1
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/es2017/main_thread/types.d.ts +537 -0
- package/dist/es2017/main_thread/types.d.ts.map +1 -1
- package/dist/es2017/manifest/utils.d.ts.map +1 -1
- package/dist/es2017/manifest/utils.js +16 -4
- package/dist/es2017/mse/worker_media_source_interface.d.ts +2 -2
- package/dist/es2017/mse/worker_media_source_interface.d.ts.map +1 -1
- package/dist/es2017/mse/worker_media_source_interface.js +12 -12
- package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.js +31 -27
- package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts +3 -2
- package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.js +16 -7
- package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts +3 -2
- package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/parse_protection_node.js +15 -6
- package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
- package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts +3 -2
- package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.js +6 -5
- package/dist/{commonjs/playback_observer/worker_playback_observer.d.ts → es2017/playback_observer/core_playback_observer.d.ts} +8 -8
- package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +1 -0
- package/dist/es2017/playback_observer/{worker_playback_observer.js → core_playback_observer.js} +2 -2
- package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
- package/dist/es2017/transports/smooth/pipelines.js +25 -3
- package/dist/es2017/worker_entry_point.js +62 -2
- package/dist/rx-player.js +21882 -19021
- package/dist/rx-player.min.js +20 -20
- package/dist/worker.js +8 -8
- package/package.json +1 -1
- package/src/README.md +88 -198
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/core/{main/common → entry}/FreezeResolver.ts +7 -7
- package/src/core/{main → entry}/README.md +1 -1
- package/src/core/{main/worker → entry}/content_preparer.ts +77 -76
- package/src/core/{main/common → entry}/content_time_boundaries_observer.ts +10 -10
- package/src/core/{main/worker/worker_main.ts → entry/core_entry.ts} +223 -149
- package/src/core/{main/worker/worker_text_displayer_interface.ts → entry/core_text_displayer_interface.ts} +26 -26
- package/src/core/{main/common → entry}/create_content_time_boundaries_observer.ts +7 -7
- package/src/core/{main/common → entry}/get_buffered_data_per_media_buffer.ts +6 -6
- package/src/core/{main/common → entry}/get_thumbnail_data.ts +5 -5
- package/src/core/entry/index.ts +4 -0
- package/src/core/{main/common → entry}/synchronize_sinks_on_observation.ts +2 -2
- package/src/core/{main/worker → entry}/track_choice_setter.ts +7 -7
- package/src/core/entry/utils.ts +11 -0
- package/src/core/stream/orchestrator/stream_orchestrator.ts +26 -1
- package/src/core/types.ts +631 -3
- package/src/experimental/features/__tests__/local.test.ts +11 -2
- package/src/experimental/features/__tests__/metaplaylist.test.ts +11 -2
- package/src/experimental/features/__tests__/multi_thread.test.ts +8 -3
- package/src/experimental/features/local.ts +7 -1
- package/src/experimental/features/metaplaylist.ts +7 -1
- package/src/experimental/features/multi_thread.ts +6 -2
- package/src/features/features_object.ts +1 -1
- package/src/features/list/__tests__/dash.test.ts +12 -3
- package/src/features/list/__tests__/smooth.test.ts +11 -2
- package/src/features/list/dash.ts +7 -1
- package/src/features/list/dash_wasm.ts +7 -1
- package/src/features/list/media_source_main.ts +7 -1
- package/src/features/list/smooth.ts +7 -1
- package/src/features/types.ts +23 -4
- package/src/main_thread/README.md +8 -0
- package/src/main_thread/api/public_api.ts +46 -48
- package/src/main_thread/core_interface/README.md +22 -0
- package/src/main_thread/core_interface/base.ts +36 -0
- package/src/main_thread/core_interface/monothread.ts +46 -0
- package/src/main_thread/core_interface/multithread.ts +49 -0
- package/src/main_thread/core_interface/types.ts +5 -0
- package/src/main_thread/init/media_source_content_initializer.ts +2034 -1152
- package/src/main_thread/init/utils/create_core_playback_observer.ts +2 -1
- package/src/main_thread/init/utils/update_manifest_codec_support.ts +1 -1
- package/src/main_thread/types.ts +610 -0
- package/src/manifest/utils.ts +20 -4
- package/src/mse/worker_media_source_interface.ts +35 -35
- package/src/parsers/manifest/smooth/create_parser.ts +40 -34
- package/src/parsers/manifest/smooth/parse_C_nodes.ts +19 -8
- package/src/parsers/manifest/smooth/parse_protection_node.ts +17 -9
- package/src/parsers/manifest/smooth/utils/parseBoolean.ts +1 -1
- package/src/parsers/manifest/smooth/utils/reduceChildren.ts +10 -7
- package/src/playback_observer/{worker_playback_observer.ts → core_playback_observer.ts} +13 -13
- package/src/transports/smooth/pipelines.ts +25 -5
- package/src/worker_entry_point.ts +71 -2
- package/dist/commonjs/core/main/common/FreezeResolver.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/get_thumbnail_data.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/synchronize_sinks_on_observation.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/globals.d.ts +0 -14
- package/dist/commonjs/core/main/worker/globals.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/globals.js +0 -26
- package/dist/commonjs/core/main/worker/index.d.ts +0 -3
- package/dist/commonjs/core/main/worker/index.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/index.js +0 -4
- package/dist/commonjs/core/main/worker/send_message.d.ts +0 -4
- package/dist/commonjs/core/main/worker/send_message.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/send_message.js +0 -23
- package/dist/commonjs/core/main/worker/track_choice_setter.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/worker_main.d.ts +0 -2
- package/dist/commonjs/core/main/worker/worker_main.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/worker_text_displayer_interface.d.ts.map +0 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +0 -308
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +0 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +0 -1713
- package/dist/commonjs/main_thread/init/send_message.d.ts +0 -3
- package/dist/commonjs/main_thread/init/send_message.d.ts.map +0 -1
- package/dist/commonjs/main_thread/init/send_message.js +0 -13
- package/dist/commonjs/multithread_types.d.ts +0 -915
- package/dist/commonjs/multithread_types.d.ts.map +0 -1
- package/dist/commonjs/multithread_types.js +0 -7
- package/dist/commonjs/playback_observer/worker_playback_observer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/FreezeResolver.d.ts.map +0 -1
- package/dist/es2017/core/main/common/content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/create_content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/get_thumbnail_data.d.ts.map +0 -1
- package/dist/es2017/core/main/common/synchronize_sinks_on_observation.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/content_preparer.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/globals.d.ts +0 -14
- package/dist/es2017/core/main/worker/globals.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/globals.js +0 -18
- package/dist/es2017/core/main/worker/index.d.ts +0 -3
- package/dist/es2017/core/main/worker/index.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/index.js +0 -2
- package/dist/es2017/core/main/worker/send_message.d.ts +0 -4
- package/dist/es2017/core/main/worker/send_message.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/send_message.js +0 -19
- package/dist/es2017/core/main/worker/track_choice_setter.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/worker_main.d.ts +0 -2
- package/dist/es2017/core/main/worker/worker_main.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/worker_text_displayer_interface.d.ts.map +0 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +0 -308
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +0 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +0 -1559
- package/dist/es2017/main_thread/init/send_message.d.ts +0 -3
- package/dist/es2017/main_thread/init/send_message.d.ts.map +0 -1
- package/dist/es2017/main_thread/init/send_message.js +0 -10
- package/dist/es2017/multithread_types.d.ts +0 -915
- package/dist/es2017/multithread_types.d.ts.map +0 -1
- package/dist/es2017/multithread_types.js +0 -6
- package/dist/es2017/playback_observer/worker_playback_observer.d.ts.map +0 -1
- package/src/core/main/worker/globals.ts +0 -38
- package/src/core/main/worker/index.ts +0 -2
- package/src/core/main/worker/send_message.ts +0 -28
- package/src/main_thread/init/multi_thread_content_initializer.ts +0 -2330
- package/src/main_thread/init/send_message.ts +0 -15
- package/src/multithread_types.ts +0 -1095
- /package/dist/commonjs/core/{main/common → entry}/synchronize_sinks_on_observation.js +0 -0
- /package/dist/es2017/core/{main/common → entry}/synchronize_sinks_on_observation.js +0 -0
|
@@ -47,35 +47,55 @@ var __values = (this && this.__values) || function(o) {
|
|
|
47
47
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
48
|
};
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.default =
|
|
51
|
-
var config_1 = require("
|
|
52
|
-
var errors_1 = require("
|
|
53
|
-
var features_1 = require("
|
|
54
|
-
var log_1 = require("
|
|
55
|
-
var classes_1 = require("
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
var
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
var object_assign_1 = require("../../../utils/object_assign");
|
|
66
|
-
var reference_1 = require("../../../utils/reference");
|
|
67
|
-
var task_canceller_1 = require("../../../utils/task_canceller");
|
|
68
|
-
var stream_1 = require("../../stream");
|
|
69
|
-
var create_content_time_boundaries_observer_1 = require("../common/create_content_time_boundaries_observer");
|
|
70
|
-
var get_buffered_data_per_media_buffer_1 = require("../common/get_buffered_data_per_media_buffer");
|
|
71
|
-
var get_thumbnail_data_1 = require("../common/get_thumbnail_data");
|
|
72
|
-
var synchronize_sinks_on_observation_1 = require("../common/synchronize_sinks_on_observation");
|
|
50
|
+
exports.default = initializeCoreEntry;
|
|
51
|
+
var config_1 = require("../../config");
|
|
52
|
+
var errors_1 = require("../../errors");
|
|
53
|
+
var features_1 = require("../../features");
|
|
54
|
+
var log_1 = require("../../log");
|
|
55
|
+
var classes_1 = require("../../manifest/classes");
|
|
56
|
+
var playback_observer_1 = require("../../playback_observer");
|
|
57
|
+
var core_playback_observer_1 = require("../../playback_observer/core_playback_observer");
|
|
58
|
+
var array_find_1 = require("../../utils/array_find");
|
|
59
|
+
var assert_1 = require("../../utils/assert");
|
|
60
|
+
var monotonic_timestamp_1 = require("../../utils/monotonic_timestamp");
|
|
61
|
+
var object_assign_1 = require("../../utils/object_assign");
|
|
62
|
+
var reference_1 = require("../../utils/reference");
|
|
63
|
+
var task_canceller_1 = require("../../utils/task_canceller");
|
|
64
|
+
var stream_1 = require("../stream");
|
|
73
65
|
var content_preparer_1 = require("./content_preparer");
|
|
74
|
-
var
|
|
75
|
-
var
|
|
76
|
-
|
|
66
|
+
var create_content_time_boundaries_observer_1 = require("./create_content_time_boundaries_observer");
|
|
67
|
+
var get_buffered_data_per_media_buffer_1 = require("./get_buffered_data_per_media_buffer");
|
|
68
|
+
var get_thumbnail_data_1 = require("./get_thumbnail_data");
|
|
69
|
+
var synchronize_sinks_on_observation_1 = require("./synchronize_sinks_on_observation");
|
|
70
|
+
var utils_1 = require("./utils");
|
|
71
|
+
/**
|
|
72
|
+
* Initialize a `CoreEntry`, which is the part of the RxPlayer acting as an
|
|
73
|
+
* entry point to all its "core" code.
|
|
74
|
+
*
|
|
75
|
+
* Its role is to receive and react to messages coming from "main thead", which
|
|
76
|
+
* may include loading and playing a content, and to send back messages for the main
|
|
77
|
+
* thread.
|
|
78
|
+
* @param {Function} setMessageReceiver - Declares the function that will
|
|
79
|
+
* receive messages coming from the "main thread" part of the RxPlayer logic.
|
|
80
|
+
* @param {Function} sendMessage - Function allowing to send messages to the
|
|
81
|
+
* "main thread" part of the RxPlayer logic.
|
|
82
|
+
*/
|
|
83
|
+
function initializeCoreEntry(setMessageReceiver, sendMessage) {
|
|
84
|
+
var _a = config_1.default.getCurrent(), DEFAULT_WANTED_BUFFER_AHEAD = _a.DEFAULT_WANTED_BUFFER_AHEAD, DEFAULT_MAX_VIDEO_BUFFER_SIZE = _a.DEFAULT_MAX_VIDEO_BUFFER_SIZE, DEFAULT_MAX_BUFFER_AHEAD = _a.DEFAULT_MAX_BUFFER_AHEAD, DEFAULT_MAX_BUFFER_BEHIND = _a.DEFAULT_MAX_BUFFER_BEHIND;
|
|
85
|
+
var refs = {
|
|
86
|
+
wantedBufferAhead: new reference_1.default(DEFAULT_WANTED_BUFFER_AHEAD),
|
|
87
|
+
maxVideoBufferSize: new reference_1.default(DEFAULT_MAX_VIDEO_BUFFER_SIZE),
|
|
88
|
+
maxBufferAhead: new reference_1.default(DEFAULT_MAX_BUFFER_AHEAD),
|
|
89
|
+
maxBufferBehind: new reference_1.default(DEFAULT_MAX_BUFFER_BEHIND),
|
|
90
|
+
limitVideoResolution: new reference_1.default({
|
|
91
|
+
height: undefined,
|
|
92
|
+
width: undefined,
|
|
93
|
+
pixelRatio: 1,
|
|
94
|
+
}),
|
|
95
|
+
throttleVideoBitrate: new reference_1.default(Infinity),
|
|
96
|
+
};
|
|
77
97
|
/**
|
|
78
|
-
* `true` once the
|
|
98
|
+
* `true` once the CoreEntry has been initialized.
|
|
79
99
|
* Allow to enforce the fact that it is only initialized once.
|
|
80
100
|
*/
|
|
81
101
|
var isInitialized = false;
|
|
@@ -91,46 +111,42 @@ function initializeWorkerMain() {
|
|
|
91
111
|
* `null` if there's no content loaded currently.
|
|
92
112
|
*/
|
|
93
113
|
var currentContentHandle = null;
|
|
94
|
-
// Initialize Manually a `DashWasmParser` and add the feature.
|
|
95
|
-
// TODO allow worker-side feature-switching? Not sure how
|
|
96
|
-
var dashWasmParser = new wasm_parser_1.default();
|
|
97
|
-
features_1.default.dashParsers.wasm = dashWasmParser;
|
|
98
|
-
features_1.default.dashParsers.js = js_parser_1.default;
|
|
99
|
-
features_1.default.transports.dash = dash_1.default;
|
|
100
114
|
/**
|
|
101
115
|
* When set, emit playback observation made on the main thread.
|
|
102
116
|
*/
|
|
103
117
|
var playbackObservationRef = null;
|
|
104
|
-
|
|
105
|
-
log_1.default.error("Core", "Error when receiving message from main thread.");
|
|
106
|
-
};
|
|
107
|
-
onmessage = function (e) {
|
|
118
|
+
setMessageReceiver(function (e) {
|
|
108
119
|
var _a, _b;
|
|
109
120
|
log_1.default.debug("Core", "received message", { name: e.data.type });
|
|
110
121
|
var msg = e.data;
|
|
111
122
|
switch (msg.type) {
|
|
112
123
|
case "init" /* MainThreadMessageType.Init */:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
dashWasmParser
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
{
|
|
125
|
+
(0, assert_1.default)(!isInitialized);
|
|
126
|
+
isInitialized = true;
|
|
127
|
+
(0, monotonic_timestamp_1.scaleTimestamp)(msg.value);
|
|
128
|
+
updateLoggerLevel(msg.value.logLevel, msg.value.logFormat, msg.value.sendBackLogs);
|
|
129
|
+
var dashWasmParser = features_1.default.dashParsers.wasm;
|
|
130
|
+
if (dashWasmParser !== null &&
|
|
131
|
+
msg.value.dashWasmUrl !== undefined &&
|
|
132
|
+
dashWasmParser.isCompatible()) {
|
|
133
|
+
dashWasmParser.initialize({ wasmUrl: msg.value.dashWasmUrl }).catch(function (err) {
|
|
134
|
+
var error = err instanceof Error ? err.toString() : "Unknown Error";
|
|
135
|
+
log_1.default.error("Core", "Could not initialize DASH_WASM parser", error);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
if (!msg.value.hasVideo) {
|
|
139
|
+
contentPreparer.disposeCurrentContent();
|
|
140
|
+
contentPreparer = new content_preparer_1.default({ hasVideo: msg.value.hasVideo });
|
|
141
|
+
}
|
|
142
|
+
sendMessage({ type: "init-success" /* CoreMessageType.InitSuccess */, value: null });
|
|
126
143
|
}
|
|
127
|
-
(0, send_message_1.default)({ type: "init-success" /* WorkerMessageType.InitSuccess */, value: null });
|
|
128
144
|
break;
|
|
129
145
|
case "log-level-update" /* MainThreadMessageType.LogLevelUpdate */:
|
|
130
146
|
updateLoggerLevel(msg.value.logLevel, msg.value.logFormat, msg.value.sendBackLogs);
|
|
131
147
|
break;
|
|
132
148
|
case "prepare" /* MainThreadMessageType.PrepareContent */:
|
|
133
|
-
prepareNewContent(contentPreparer, msg.value);
|
|
149
|
+
prepareNewContent(sendMessage, contentPreparer, msg.value, refs);
|
|
134
150
|
break;
|
|
135
151
|
case "start" /* MainThreadMessageType.StartPreparedContent */: {
|
|
136
152
|
var preparedContent = contentPreparer.getCurrentContent();
|
|
@@ -143,7 +159,7 @@ function initializeWorkerMain() {
|
|
|
143
159
|
position: new (playback_observer_1.ObservationPosition.bind.apply(playback_observer_1.ObservationPosition, __spreadArray([void 0], __read(msg.value.initialObservation.position), false)))(),
|
|
144
160
|
}));
|
|
145
161
|
playbackObservationRef = currentContentObservationRef;
|
|
146
|
-
currentContentHandle = loadPreparedContent(msg.value, contentPreparer, currentContentObservationRef);
|
|
162
|
+
currentContentHandle = loadPreparedContent(sendMessage, msg.value, contentPreparer, currentContentObservationRef, refs);
|
|
147
163
|
break;
|
|
148
164
|
}
|
|
149
165
|
case "observation" /* MainThreadMessageType.PlaybackObservation */: {
|
|
@@ -166,7 +182,7 @@ function initializeWorkerMain() {
|
|
|
166
182
|
break;
|
|
167
183
|
}
|
|
168
184
|
case "ref-update" /* MainThreadMessageType.ReferenceUpdate */:
|
|
169
|
-
|
|
185
|
+
updateCoreReference(msg, refs);
|
|
170
186
|
break;
|
|
171
187
|
case "stop" /* MainThreadMessageType.StopContent */:
|
|
172
188
|
if (msg.contentId !== ((_a = contentPreparer.getCurrentContent()) === null || _a === void 0 ? void 0 : _a.contentId)) {
|
|
@@ -280,18 +296,18 @@ function initializeWorkerMain() {
|
|
|
280
296
|
try {
|
|
281
297
|
var warning = preparedContent.manifest.updateCodecSupport(newEvaluatedCodecs);
|
|
282
298
|
if (warning !== null) {
|
|
283
|
-
(
|
|
284
|
-
type: "warning" /*
|
|
299
|
+
sendMessage({
|
|
300
|
+
type: "warning" /* CoreMessageType.Warning */,
|
|
285
301
|
contentId: preparedContent.contentId,
|
|
286
|
-
value: (0,
|
|
302
|
+
value: (0, utils_1.formatErrorForSender)(warning),
|
|
287
303
|
});
|
|
288
304
|
}
|
|
289
305
|
}
|
|
290
306
|
catch (err) {
|
|
291
|
-
(
|
|
292
|
-
type: "error" /*
|
|
307
|
+
sendMessage({
|
|
308
|
+
type: "error" /* CoreMessageType.Error */,
|
|
293
309
|
contentId: preparedContent.contentId,
|
|
294
|
-
value: (0,
|
|
310
|
+
value: (0, utils_1.formatErrorForSender)(err),
|
|
295
311
|
});
|
|
296
312
|
}
|
|
297
313
|
break;
|
|
@@ -325,11 +341,11 @@ function initializeWorkerMain() {
|
|
|
325
341
|
if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
|
|
326
342
|
return;
|
|
327
343
|
}
|
|
328
|
-
if (preparedContent.
|
|
344
|
+
if (preparedContent.coreTextSender === null) {
|
|
329
345
|
log_1.default.error("Core", "Added text track but text track aren't enabled");
|
|
330
346
|
return;
|
|
331
347
|
}
|
|
332
|
-
preparedContent.
|
|
348
|
+
preparedContent.coreTextSender.onPushedTrackSuccess(msg.value.ranges);
|
|
333
349
|
break;
|
|
334
350
|
}
|
|
335
351
|
case "push-text-error" /* MainThreadMessageType.PushTextDataError */: {
|
|
@@ -337,11 +353,11 @@ function initializeWorkerMain() {
|
|
|
337
353
|
if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
|
|
338
354
|
return;
|
|
339
355
|
}
|
|
340
|
-
if (preparedContent.
|
|
356
|
+
if (preparedContent.coreTextSender === null) {
|
|
341
357
|
log_1.default.error("Core", "Added text track but text track aren't enabled");
|
|
342
358
|
return;
|
|
343
359
|
}
|
|
344
|
-
preparedContent.
|
|
360
|
+
preparedContent.coreTextSender.onPushedTrackError(new Error(msg.value.message));
|
|
345
361
|
break;
|
|
346
362
|
}
|
|
347
363
|
case "remove-text-success" /* MainThreadMessageType.RemoveTextDataSuccess */: {
|
|
@@ -349,11 +365,11 @@ function initializeWorkerMain() {
|
|
|
349
365
|
if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
|
|
350
366
|
return;
|
|
351
367
|
}
|
|
352
|
-
if (preparedContent.
|
|
368
|
+
if (preparedContent.coreTextSender === null) {
|
|
353
369
|
log_1.default.error("Core", "Removed text track but text track aren't enabled");
|
|
354
370
|
return;
|
|
355
371
|
}
|
|
356
|
-
preparedContent.
|
|
372
|
+
preparedContent.coreTextSender.onRemoveSuccess(msg.value.ranges);
|
|
357
373
|
break;
|
|
358
374
|
}
|
|
359
375
|
case "remove-text-error" /* MainThreadMessageType.RemoveTextDataError */: {
|
|
@@ -361,19 +377,19 @@ function initializeWorkerMain() {
|
|
|
361
377
|
if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
|
|
362
378
|
return;
|
|
363
379
|
}
|
|
364
|
-
if (preparedContent.
|
|
380
|
+
if (preparedContent.coreTextSender === null) {
|
|
365
381
|
log_1.default.error("Core", "Removed text track but text track aren't enabled");
|
|
366
382
|
return;
|
|
367
383
|
}
|
|
368
|
-
preparedContent.
|
|
384
|
+
preparedContent.coreTextSender.onRemoveError(new Error(msg.value.message));
|
|
369
385
|
break;
|
|
370
386
|
}
|
|
371
387
|
case "pull-segment-sink-store-infos" /* MainThreadMessageType.PullSegmentSinkStoreInfos */: {
|
|
372
|
-
sendSegmentSinksStoreInfos(contentPreparer, msg.value.requestId);
|
|
388
|
+
sendSegmentSinksStoreInfos(sendMessage, contentPreparer, msg.value.requestId);
|
|
373
389
|
break;
|
|
374
390
|
}
|
|
375
391
|
case "thumbnail-request" /* MainThreadMessageType.ThumbnailDataRequest */: {
|
|
376
|
-
sendThumbnailData(contentPreparer, msg);
|
|
392
|
+
sendThumbnailData(sendMessage, contentPreparer, msg);
|
|
377
393
|
break;
|
|
378
394
|
}
|
|
379
395
|
case "config-update" /* MainThreadMessageType.ConfigUpdate */: {
|
|
@@ -383,48 +399,68 @@ function initializeWorkerMain() {
|
|
|
383
399
|
default:
|
|
384
400
|
(0, assert_1.assertUnreachable)(msg);
|
|
385
401
|
}
|
|
386
|
-
};
|
|
402
|
+
});
|
|
387
403
|
}
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
404
|
+
/**
|
|
405
|
+
* Performs steps needed to prepare a future content to be played:
|
|
406
|
+
* - Load its Manifest file
|
|
407
|
+
* - Create MSE `MediaSource` for that content.
|
|
408
|
+
* - Initialize all modules that will follow that content
|
|
409
|
+
* - etc.
|
|
410
|
+
* @param {Function} sendMessage - Function allowing to send messages to the
|
|
411
|
+
* "main thread" part of the RxPlayer logic.
|
|
412
|
+
* @param {ContentPreparer} contentPreparer
|
|
413
|
+
* @param {Object} contentInitData - Configuration wanted for the content to
|
|
414
|
+
* load.
|
|
415
|
+
* @param {Object} refs - Collection of so-called "references": values
|
|
416
|
+
* configuring playback that may be updated at any time and that the
|
|
417
|
+
* CoreEntry should react on.
|
|
418
|
+
*/
|
|
419
|
+
function prepareNewContent(sendMessage, contentPreparer, contentInitData, refs) {
|
|
420
|
+
contentPreparer
|
|
421
|
+
.initializeNewContent(sendMessage, contentInitData, {
|
|
422
|
+
limitResolution: { video: refs.limitVideoResolution },
|
|
423
|
+
throttleBitrate: { video: refs.throttleVideoBitrate },
|
|
424
|
+
})
|
|
425
|
+
.then(function (manifest) {
|
|
426
|
+
sendMessage({
|
|
427
|
+
type: "manifest-ready" /* CoreMessageType.ManifestReady */,
|
|
392
428
|
contentId: contentInitData.contentId,
|
|
393
429
|
value: { manifest: manifest },
|
|
394
430
|
});
|
|
395
431
|
}, function (err) {
|
|
396
|
-
(
|
|
397
|
-
type: "error" /*
|
|
432
|
+
sendMessage({
|
|
433
|
+
type: "error" /* CoreMessageType.Error */,
|
|
398
434
|
contentId: contentInitData.contentId,
|
|
399
|
-
value: (0,
|
|
435
|
+
value: (0, utils_1.formatErrorForSender)(err),
|
|
400
436
|
});
|
|
401
437
|
});
|
|
402
438
|
}
|
|
403
|
-
function
|
|
439
|
+
function updateCoreReference(msg, refs) {
|
|
404
440
|
switch (msg.value.name) {
|
|
405
441
|
case "wantedBufferAhead":
|
|
406
|
-
|
|
442
|
+
refs.wantedBufferAhead.setValueIfChanged(msg.value.newVal);
|
|
407
443
|
break;
|
|
408
444
|
case "maxVideoBufferSize":
|
|
409
|
-
|
|
445
|
+
refs.maxVideoBufferSize.setValueIfChanged(msg.value.newVal);
|
|
410
446
|
break;
|
|
411
447
|
case "maxBufferBehind":
|
|
412
|
-
|
|
448
|
+
refs.maxBufferBehind.setValueIfChanged(msg.value.newVal);
|
|
413
449
|
break;
|
|
414
450
|
case "maxBufferAhead":
|
|
415
|
-
|
|
451
|
+
refs.maxBufferAhead.setValueIfChanged(msg.value.newVal);
|
|
416
452
|
break;
|
|
417
453
|
case "limitVideoResolution":
|
|
418
|
-
|
|
454
|
+
refs.limitVideoResolution.setValueIfChanged(msg.value.newVal);
|
|
419
455
|
break;
|
|
420
456
|
case "throttleVideoBitrate":
|
|
421
|
-
|
|
457
|
+
refs.throttleVideoBitrate.setValueIfChanged(msg.value.newVal);
|
|
422
458
|
break;
|
|
423
459
|
default:
|
|
424
460
|
(0, assert_1.assertUnreachable)(msg.value);
|
|
425
461
|
}
|
|
426
462
|
}
|
|
427
|
-
function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
463
|
+
function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservationRef, refs) {
|
|
428
464
|
log_1.default.debug("Core", "Loading pepared content.");
|
|
429
465
|
var contentCanceller = new task_canceller_1.default();
|
|
430
466
|
var currentLoadCanceller = null;
|
|
@@ -443,7 +479,7 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
443
479
|
currentLoadCanceller = new task_canceller_1.default();
|
|
444
480
|
currentLoadCanceller.linkToSignal(contentCanceller.signal);
|
|
445
481
|
/**
|
|
446
|
-
* Stores last discontinuity update sent to the
|
|
482
|
+
* Stores last discontinuity update sent to the Core for each Period and type
|
|
447
483
|
* combinations, at least until the corresponding `PeriodStreamCleared`
|
|
448
484
|
* message.
|
|
449
485
|
*
|
|
@@ -454,10 +490,10 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
454
490
|
var preparedContent = contentPreparer.getCurrentContent();
|
|
455
491
|
if (preparedContent === null || preparedContent.manifest === null) {
|
|
456
492
|
var error = new errors_1.OtherError("NONE", "Loading content when none is prepared");
|
|
457
|
-
(
|
|
458
|
-
type: "error" /*
|
|
493
|
+
sendMessage({
|
|
494
|
+
type: "error" /* CoreMessageType.Error */,
|
|
459
495
|
contentId: undefined,
|
|
460
|
-
value: (0,
|
|
496
|
+
value: (0, utils_1.formatErrorForSender)(error),
|
|
461
497
|
});
|
|
462
498
|
throw error;
|
|
463
499
|
}
|
|
@@ -467,7 +503,7 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
467
503
|
(0, synchronize_sinks_on_observation_1.default)(observation, segmentSinksStore);
|
|
468
504
|
var freezeResolution = preparedContent.freezeResolver.onNewObservation(observation);
|
|
469
505
|
if (freezeResolution !== null) {
|
|
470
|
-
handleFreezeResolution(freezeResolution, {
|
|
506
|
+
handleFreezeResolution(sendMessage, freezeResolution, {
|
|
471
507
|
contentId: contentId,
|
|
472
508
|
manifest: manifest,
|
|
473
509
|
handleMediaSourceReload: performMediaSourceReload,
|
|
@@ -478,39 +514,39 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
478
514
|
var initialPeriod = (_a = manifest.getPeriodForTime(startTime)) !== null && _a !== void 0 ? _a : manifest.getNextPeriod(startTime);
|
|
479
515
|
if (initialPeriod === undefined) {
|
|
480
516
|
var error = new errors_1.MediaError("MEDIA_STARTING_TIME_NOT_FOUND", "Wanted starting time not found in the Manifest.");
|
|
481
|
-
(
|
|
482
|
-
type: "error" /*
|
|
517
|
+
sendMessage({
|
|
518
|
+
type: "error" /* CoreMessageType.Error */,
|
|
483
519
|
contentId: contentId,
|
|
484
|
-
value: (0,
|
|
520
|
+
value: (0, utils_1.formatErrorForSender)(error),
|
|
485
521
|
});
|
|
486
522
|
throw error;
|
|
487
523
|
}
|
|
488
|
-
var playbackObserver = new
|
|
524
|
+
var playbackObserver = new core_playback_observer_1.default(playbackObservationRef, contentId, sendMessage, currentLoadCanceller.signal);
|
|
489
525
|
cmcdDataBuilder === null || cmcdDataBuilder === void 0 ? void 0 : cmcdDataBuilder.startMonitoringPlayback(playbackObserver);
|
|
490
526
|
currentLoadCanceller.signal.register(function () {
|
|
491
527
|
cmcdDataBuilder === null || cmcdDataBuilder === void 0 ? void 0 : cmcdDataBuilder.stopMonitoringPlayback();
|
|
492
528
|
});
|
|
493
529
|
var contentTimeBoundariesObserver = (0, create_content_time_boundaries_observer_1.default)(manifest, mediaSource, playbackObserver, segmentSinksStore, {
|
|
494
530
|
onWarning: function (err) {
|
|
495
|
-
return (
|
|
496
|
-
type: "warning" /*
|
|
531
|
+
return sendMessage({
|
|
532
|
+
type: "warning" /* CoreMessageType.Warning */,
|
|
497
533
|
contentId: contentId,
|
|
498
|
-
value: (0,
|
|
534
|
+
value: (0, utils_1.formatErrorForSender)(err),
|
|
499
535
|
});
|
|
500
536
|
},
|
|
501
537
|
onPeriodChanged: function (period) {
|
|
502
|
-
(
|
|
503
|
-
type: "active-period-changed" /*
|
|
538
|
+
sendMessage({
|
|
539
|
+
type: "active-period-changed" /* CoreMessageType.ActivePeriodChanged */,
|
|
504
540
|
contentId: contentId,
|
|
505
541
|
value: { periodId: period.id },
|
|
506
542
|
});
|
|
507
543
|
},
|
|
508
544
|
}, currentLoadCanceller.signal);
|
|
509
545
|
(0, stream_1.default)({ initialPeriod: initialPeriod, manifest: manifest }, playbackObserver, representationEstimator, segmentSinksStore, segmentQueueCreator, {
|
|
510
|
-
wantedBufferAhead:
|
|
511
|
-
maxVideoBufferSize:
|
|
512
|
-
maxBufferAhead:
|
|
513
|
-
maxBufferBehind:
|
|
546
|
+
wantedBufferAhead: refs.wantedBufferAhead,
|
|
547
|
+
maxVideoBufferSize: refs.maxVideoBufferSize,
|
|
548
|
+
maxBufferAhead: refs.maxBufferAhead,
|
|
549
|
+
maxBufferBehind: refs.maxBufferBehind,
|
|
514
550
|
drmSystemId: drmSystemId,
|
|
515
551
|
enableFastSwitching: enableFastSwitching,
|
|
516
552
|
onCodecSwitch: onCodecSwitch,
|
|
@@ -523,8 +559,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
523
559
|
function handleStreamOrchestratorCallbacks() {
|
|
524
560
|
return {
|
|
525
561
|
needsBufferFlush: function (payload) {
|
|
526
|
-
(
|
|
527
|
-
type: "needs-buffer-flush" /*
|
|
562
|
+
sendMessage({
|
|
563
|
+
type: "needs-buffer-flush" /* CoreMessageType.NeedsBufferFlush */,
|
|
528
564
|
contentId: contentId,
|
|
529
565
|
value: payload,
|
|
530
566
|
});
|
|
@@ -560,8 +596,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
560
596
|
});
|
|
561
597
|
},
|
|
562
598
|
lockedStream: function (payload) {
|
|
563
|
-
(
|
|
564
|
-
type: "locked-stream" /*
|
|
599
|
+
sendMessage({
|
|
600
|
+
type: "locked-stream" /* CoreMessageType.LockedStream */,
|
|
565
601
|
contentId: contentId,
|
|
566
602
|
value: {
|
|
567
603
|
periodId: payload.period.id,
|
|
@@ -576,8 +612,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
576
612
|
currentLoadCanceller.signal.isCancelled()) {
|
|
577
613
|
return;
|
|
578
614
|
}
|
|
579
|
-
(
|
|
580
|
-
type: "adaptation-changed" /*
|
|
615
|
+
sendMessage({
|
|
616
|
+
type: "adaptation-changed" /* CoreMessageType.AdaptationChanged */,
|
|
581
617
|
contentId: contentId,
|
|
582
618
|
value: {
|
|
583
619
|
adaptationId: (_b = (_a = value.adaptation) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null,
|
|
@@ -593,8 +629,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
593
629
|
currentLoadCanceller.signal.isCancelled()) {
|
|
594
630
|
return;
|
|
595
631
|
}
|
|
596
|
-
(
|
|
597
|
-
type: "representation-changed" /*
|
|
632
|
+
sendMessage({
|
|
633
|
+
type: "representation-changed" /* CoreMessageType.RepresentationChanged */,
|
|
598
634
|
contentId: contentId,
|
|
599
635
|
value: {
|
|
600
636
|
adaptationId: value.adaptation.id,
|
|
@@ -605,17 +641,17 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
605
641
|
});
|
|
606
642
|
},
|
|
607
643
|
inbandEvent: function (value) {
|
|
608
|
-
(
|
|
609
|
-
type: "inband-event" /*
|
|
644
|
+
sendMessage({
|
|
645
|
+
type: "inband-event" /* CoreMessageType.InbandEvent */,
|
|
610
646
|
contentId: contentId,
|
|
611
647
|
value: value,
|
|
612
648
|
});
|
|
613
649
|
},
|
|
614
650
|
warning: function (value) {
|
|
615
|
-
(
|
|
616
|
-
type: "warning" /*
|
|
651
|
+
sendMessage({
|
|
652
|
+
type: "warning" /* CoreMessageType.Warning */,
|
|
617
653
|
contentId: contentId,
|
|
618
|
-
value: (0,
|
|
654
|
+
value: (0, utils_1.formatErrorForSender)(value),
|
|
619
655
|
});
|
|
620
656
|
},
|
|
621
657
|
periodStreamReady: function (value) {
|
|
@@ -623,8 +659,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
623
659
|
return;
|
|
624
660
|
}
|
|
625
661
|
preparedContent.trackChoiceSetter.addTrackSetter(value.period.id, value.type, value.adaptationRef);
|
|
626
|
-
(
|
|
627
|
-
type: "period-stream-ready" /*
|
|
662
|
+
sendMessage({
|
|
663
|
+
type: "period-stream-ready" /* CoreMessageType.PeriodStreamReady */,
|
|
628
664
|
contentId: contentId,
|
|
629
665
|
value: { periodId: value.period.id, bufferType: value.type },
|
|
630
666
|
});
|
|
@@ -642,8 +678,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
642
678
|
}
|
|
643
679
|
contentTimeBoundariesObserver.onPeriodCleared(value.type, value.period);
|
|
644
680
|
preparedContent.trackChoiceSetter.removeTrackSetter(value.period.id, value.type);
|
|
645
|
-
(
|
|
646
|
-
type: "period-stream-cleared" /*
|
|
681
|
+
sendMessage({
|
|
682
|
+
type: "period-stream-cleared" /* CoreMessageType.PeriodStreamCleared */,
|
|
647
683
|
contentId: contentId,
|
|
648
684
|
value: { periodId: value.period.id, bufferType: value.type },
|
|
649
685
|
});
|
|
@@ -656,8 +692,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
656
692
|
// TODO for low-latency contents it is __VERY__ frequent.
|
|
657
693
|
// Considering this is only for an unimportant undocumented API, we may
|
|
658
694
|
// throttle such messages. (e.g. max one per 2 seconds for each type?).
|
|
659
|
-
(
|
|
660
|
-
type: "bitrate-estimate-change" /*
|
|
695
|
+
sendMessage({
|
|
696
|
+
type: "bitrate-estimate-change" /* CoreMessageType.BitrateEstimateChange */,
|
|
661
697
|
contentId: contentId,
|
|
662
698
|
value: {
|
|
663
699
|
bitrate: payload.bitrate,
|
|
@@ -669,8 +705,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
669
705
|
performMediaSourceReload(payload);
|
|
670
706
|
},
|
|
671
707
|
needsDecipherabilityFlush: function () {
|
|
672
|
-
(
|
|
673
|
-
type: "needs-decipherability-flush" /*
|
|
708
|
+
sendMessage({
|
|
709
|
+
type: "needs-decipherability-flush" /* CoreMessageType.NeedsDecipherabilityFlush */,
|
|
674
710
|
contentId: contentId,
|
|
675
711
|
value: null,
|
|
676
712
|
});
|
|
@@ -694,8 +730,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
694
730
|
if (content.representation instanceof classes_1.Representation) {
|
|
695
731
|
content.representation = content.representation.getMetadataSnapshot();
|
|
696
732
|
}
|
|
697
|
-
(
|
|
698
|
-
type: "encryption-data-encountered" /*
|
|
733
|
+
sendMessage({
|
|
734
|
+
type: "encryption-data-encountered" /* CoreMessageType.EncryptionDataEncountered */,
|
|
699
735
|
contentId: contentId,
|
|
700
736
|
value: {
|
|
701
737
|
keyIds: value.keyIds,
|
|
@@ -715,10 +751,10 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
715
751
|
}
|
|
716
752
|
},
|
|
717
753
|
error: function (error) {
|
|
718
|
-
(
|
|
719
|
-
type: "error" /*
|
|
754
|
+
sendMessage({
|
|
755
|
+
type: "error" /* CoreMessageType.Error */,
|
|
720
756
|
contentId: contentId,
|
|
721
|
-
value: (0,
|
|
757
|
+
value: (0, utils_1.formatErrorForSender)(error),
|
|
722
758
|
});
|
|
723
759
|
},
|
|
724
760
|
};
|
|
@@ -750,8 +786,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
750
786
|
position: value.position,
|
|
751
787
|
};
|
|
752
788
|
periodMap.set(value.bufferType, msgObj);
|
|
753
|
-
(
|
|
754
|
-
type: "discontinuity-update" /*
|
|
789
|
+
sendMessage({
|
|
790
|
+
type: "discontinuity-update" /* CoreMessageType.DiscontinuityUpdate */,
|
|
755
791
|
contentId: contentId,
|
|
756
792
|
value: msgObj,
|
|
757
793
|
});
|
|
@@ -773,8 +809,8 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
773
809
|
minimumPosition: payload.minimumPosition,
|
|
774
810
|
maximumPosition: payload.maximumPosition,
|
|
775
811
|
});
|
|
776
|
-
(
|
|
777
|
-
type: "reloading-media-source" /*
|
|
812
|
+
sendMessage({
|
|
813
|
+
type: "reloading-media-source" /* CoreMessageType.ReloadingMediaSource */,
|
|
778
814
|
mediaSourceId: mediaSourceId,
|
|
779
815
|
value: payload,
|
|
780
816
|
}, []);
|
|
@@ -790,7 +826,7 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
790
826
|
currentLoadCanceller = null;
|
|
791
827
|
}
|
|
792
828
|
var contentId = (_a = contentPreparer.getCurrentContent()) === null || _a === void 0 ? void 0 : _a.contentId;
|
|
793
|
-
contentPreparer.reloadMediaSource().then(function () {
|
|
829
|
+
contentPreparer.reloadMediaSource(sendMessage).then(function () {
|
|
794
830
|
log_1.default.info("Core", "MediaSource Reloaded, loading content again", {
|
|
795
831
|
newInitialTime: newInitialTime,
|
|
796
832
|
});
|
|
@@ -800,10 +836,10 @@ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
|
|
|
800
836
|
log_1.default.info("Core", "A reloading operation was cancelled");
|
|
801
837
|
return;
|
|
802
838
|
}
|
|
803
|
-
(
|
|
804
|
-
type: "error" /*
|
|
839
|
+
sendMessage({
|
|
840
|
+
type: "error" /* CoreMessageType.Error */,
|
|
805
841
|
contentId: contentId,
|
|
806
|
-
value: (0,
|
|
842
|
+
value: (0, utils_1.formatErrorForSender)(err),
|
|
807
843
|
});
|
|
808
844
|
});
|
|
809
845
|
}
|
|
@@ -818,13 +854,13 @@ function updateLoggerLevel(logLevel, logFormat, sendBackLogs) {
|
|
|
818
854
|
log_1.default.setLevel(logLevel, "standard", function (levelStr, namespace, logs) {
|
|
819
855
|
var sentLogs = logs.map(function (e) {
|
|
820
856
|
if (e instanceof Error) {
|
|
821
|
-
return (0,
|
|
857
|
+
return (0, utils_1.formatErrorForSender)(e);
|
|
822
858
|
}
|
|
823
859
|
return e;
|
|
824
860
|
});
|
|
825
861
|
// Not relying on `sendMessage` as it also logs
|
|
826
862
|
postMessage({
|
|
827
|
-
type: "log" /*
|
|
863
|
+
type: "log" /* CoreMessageType.LogMessage */,
|
|
828
864
|
value: {
|
|
829
865
|
namespace: namespace,
|
|
830
866
|
logLevel: levelStr,
|
|
@@ -837,23 +873,26 @@ function updateLoggerLevel(logLevel, logFormat, sendBackLogs) {
|
|
|
837
873
|
/**
|
|
838
874
|
* Send a message `SegmentSinkStoreUpdate` to the main thread with
|
|
839
875
|
* a serialized object that represents the segmentSinksStore state.
|
|
876
|
+
* @param {Function} sendMessage - Function allowing to send messages to the
|
|
877
|
+
* "main thread" part of the RxPlayer logic.
|
|
840
878
|
* @param {ContentPreparer} contentPreparer
|
|
841
|
-
* @returns {void}
|
|
842
879
|
*/
|
|
843
|
-
function sendSegmentSinksStoreInfos(contentPreparer, requestId) {
|
|
880
|
+
function sendSegmentSinksStoreInfos(sendMessage, contentPreparer, requestId) {
|
|
844
881
|
var currentContent = contentPreparer.getCurrentContent();
|
|
845
882
|
if (currentContent === null) {
|
|
846
883
|
return;
|
|
847
884
|
}
|
|
848
885
|
var segmentSinksMetrics = currentContent.segmentSinksStore.getSegmentSinksMetrics();
|
|
849
|
-
(
|
|
850
|
-
type: "segment-sink-store-update" /*
|
|
886
|
+
sendMessage({
|
|
887
|
+
type: "segment-sink-store-update" /* CoreMessageType.SegmentSinkStoreUpdate */,
|
|
851
888
|
contentId: currentContent.contentId,
|
|
852
889
|
value: { segmentSinkMetrics: segmentSinksMetrics, requestId: requestId },
|
|
853
890
|
});
|
|
854
891
|
}
|
|
855
892
|
/**
|
|
856
893
|
* Handle accordingly an `IFreezeResolution` object.
|
|
894
|
+
* @param {Function} sendMessage - Function allowing to send messages to the
|
|
895
|
+
* "main thread" part of the RxPlayer logic.
|
|
857
896
|
* @param {Object|null} freezeResolution - The `IFreezeResolution` suggested.
|
|
858
897
|
* @param {Object} param - Parameters that might be needed to implement the
|
|
859
898
|
* resolution.
|
|
@@ -866,7 +905,7 @@ function sendSegmentSinksStoreInfos(contentPreparer, requestId) {
|
|
|
866
905
|
* function is authorized to mark `Representation` as "to avoid" if the
|
|
867
906
|
* `IFreezeResolution` object suggest it.
|
|
868
907
|
*/
|
|
869
|
-
function handleFreezeResolution(freezeResolution, _a) {
|
|
908
|
+
function handleFreezeResolution(sendMessage, freezeResolution, _a) {
|
|
870
909
|
var contentId = _a.contentId, manifest = _a.manifest, handleMediaSourceReload = _a.handleMediaSourceReload, enableRepresentationAvoidance = _a.enableRepresentationAvoidance;
|
|
871
910
|
switch (freezeResolution.type) {
|
|
872
911
|
case "reload": {
|
|
@@ -880,8 +919,8 @@ function handleFreezeResolution(freezeResolution, _a) {
|
|
|
880
919
|
}
|
|
881
920
|
case "flush": {
|
|
882
921
|
log_1.default.info("Core", "Flushing buffer due to freeze");
|
|
883
|
-
(
|
|
884
|
-
type: "needs-buffer-flush" /*
|
|
922
|
+
sendMessage({
|
|
923
|
+
type: "needs-buffer-flush" /* CoreMessageType.NeedsBufferFlush */,
|
|
885
924
|
contentId: contentId,
|
|
886
925
|
value: {
|
|
887
926
|
relativeResumingPosition: freezeResolution.value.relativeSeek,
|
|
@@ -912,16 +951,16 @@ function handleFreezeResolution(freezeResolution, _a) {
|
|
|
912
951
|
* @param {ContentPreparer} contentPreparer
|
|
913
952
|
* @returns {void}
|
|
914
953
|
*/
|
|
915
|
-
function sendThumbnailData(contentPreparer, msg) {
|
|
954
|
+
function sendThumbnailData(sendMessage, contentPreparer, msg) {
|
|
916
955
|
var preparedContent = contentPreparer.getCurrentContent();
|
|
917
956
|
var respondWithError = function (err) {
|
|
918
|
-
(
|
|
919
|
-
type: "thumbnail-response" /*
|
|
957
|
+
sendMessage({
|
|
958
|
+
type: "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */,
|
|
920
959
|
contentId: msg.contentId,
|
|
921
960
|
value: {
|
|
922
961
|
status: "error",
|
|
923
962
|
requestId: msg.value.requestId,
|
|
924
|
-
error: (0,
|
|
963
|
+
error: (0, utils_1.formatErrorForSender)(err),
|
|
925
964
|
},
|
|
926
965
|
});
|
|
927
966
|
};
|
|
@@ -931,8 +970,8 @@ function sendThumbnailData(contentPreparer, msg) {
|
|
|
931
970
|
return respondWithError(new Error("Content changed"));
|
|
932
971
|
}
|
|
933
972
|
(0, get_thumbnail_data_1.default)(preparedContent.fetchThumbnailData, preparedContent.manifest, msg.value.periodId, msg.value.thumbnailTrackId, msg.value.time).then(function (result) {
|
|
934
|
-
(
|
|
935
|
-
type: "thumbnail-response" /*
|
|
973
|
+
sendMessage({
|
|
974
|
+
type: "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */,
|
|
936
975
|
contentId: msg.contentId,
|
|
937
976
|
value: {
|
|
938
977
|
status: "success",
|