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