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
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import initializeCoreEntry from "../../../core/entry";
|
|
3
2
|
import type { IFeaturesObject } from "../../../features/types";
|
|
4
|
-
import { MonoThreadCoreInterface } from "../../../main_thread/core_interface/monothread";
|
|
5
3
|
import MediaSourceContentInitializer from "../../../main_thread/init/media_source_content_initializer";
|
|
6
4
|
import metaplaylist from "../../../transports/metaplaylist";
|
|
7
5
|
import addLocalManifestFeature from "../metaplaylist";
|
|
@@ -12,16 +10,9 @@ describe("Features list - METAPLAYLIST", () => {
|
|
|
12
10
|
addLocalManifestFeature(featureObject);
|
|
13
11
|
expect(featureObject).toEqual({
|
|
14
12
|
transports: { metaplaylist },
|
|
15
|
-
|
|
16
|
-
init: MediaSourceContentInitializer,
|
|
17
|
-
coreInterface: MonoThreadCoreInterface,
|
|
18
|
-
initializeCoreEntry,
|
|
19
|
-
},
|
|
13
|
+
mainThreadMediaSourceInit: MediaSourceContentInitializer,
|
|
20
14
|
});
|
|
21
15
|
expect(featureObject.transports.metaplaylist).toBe(metaplaylist);
|
|
22
|
-
expect(featureObject.
|
|
23
|
-
expect(featureObject.monothread?.init).toBe(MediaSourceContentInitializer);
|
|
24
|
-
expect(featureObject.monothread?.coreInterface).toBe(MonoThreadCoreInterface);
|
|
25
|
-
expect(featureObject.monothread?.initializeCoreEntry).toBe(initializeCoreEntry);
|
|
16
|
+
expect(featureObject.mainThreadMediaSourceInit).toBe(MediaSourceContentInitializer);
|
|
26
17
|
});
|
|
27
18
|
});
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
2
|
import type { IFeaturesObject } from "../../../features/types";
|
|
3
|
-
import
|
|
4
|
-
import MediaSourceContentInitializer from "../../../main_thread/init/media_source_content_initializer";
|
|
3
|
+
import MultiThreadContentInitializer from "../../../main_thread/init/multi_thread_content_initializer";
|
|
5
4
|
import addMultiThreadFeature from "../multi_thread";
|
|
6
5
|
|
|
7
6
|
describe("Features list - EME", () => {
|
|
@@ -9,14 +8,10 @@ describe("Features list - EME", () => {
|
|
|
9
8
|
const featureObject: IFeaturesObject = {} as IFeaturesObject;
|
|
10
9
|
addMultiThreadFeature(featureObject);
|
|
11
10
|
expect(featureObject).toEqual({
|
|
12
|
-
multithread: {
|
|
13
|
-
init: MediaSourceContentInitializer,
|
|
14
|
-
coreInterface: WorkerCoreInterface,
|
|
15
|
-
},
|
|
11
|
+
multithread: { init: MultiThreadContentInitializer },
|
|
16
12
|
});
|
|
17
13
|
expect(featureObject.multithread).not.toBe(null);
|
|
18
14
|
expect(featureObject.multithread).not.toBe(undefined);
|
|
19
|
-
expect(featureObject.multithread?.init).toBe(
|
|
20
|
-
expect(featureObject.multithread?.coreInterface).toBe(WorkerCoreInterface);
|
|
15
|
+
expect(featureObject.multithread?.init).toBe(MultiThreadContentInitializer);
|
|
21
16
|
});
|
|
22
17
|
});
|
|
@@ -14,19 +14,13 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import initializeCoreEntry from "../../core/entry";
|
|
18
17
|
import type { IFeaturesObject } from "../../features/types";
|
|
19
|
-
import { MonoThreadCoreInterface } from "../../main_thread/core_interface/monothread";
|
|
20
18
|
import MediaSourceContentInitializer from "../../main_thread/init/media_source_content_initializer";
|
|
21
19
|
import local from "../../transports/local";
|
|
22
20
|
|
|
23
21
|
function addLocalManifestFeature(features: IFeaturesObject): void {
|
|
24
22
|
features.transports.local = local;
|
|
25
|
-
features.
|
|
26
|
-
init: MediaSourceContentInitializer,
|
|
27
|
-
coreInterface: MonoThreadCoreInterface,
|
|
28
|
-
initializeCoreEntry,
|
|
29
|
-
};
|
|
23
|
+
features.mainThreadMediaSourceInit = MediaSourceContentInitializer;
|
|
30
24
|
}
|
|
31
25
|
|
|
32
26
|
export { addLocalManifestFeature as LOCAL_MANIFEST };
|
|
@@ -14,19 +14,13 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import initializeCoreEntry from "../../core/entry";
|
|
18
17
|
import type { IFeaturesObject } from "../../features/types";
|
|
19
|
-
import { MonoThreadCoreInterface } from "../../main_thread/core_interface/monothread";
|
|
20
18
|
import MediaSourceContentInitializer from "../../main_thread/init/media_source_content_initializer";
|
|
21
19
|
import metaplaylist from "../../transports/metaplaylist";
|
|
22
20
|
|
|
23
21
|
function addMetaPlaylistFeature(features: IFeaturesObject): void {
|
|
24
22
|
features.transports.metaplaylist = metaplaylist;
|
|
25
|
-
features.
|
|
26
|
-
init: MediaSourceContentInitializer,
|
|
27
|
-
coreInterface: MonoThreadCoreInterface,
|
|
28
|
-
initializeCoreEntry,
|
|
29
|
-
};
|
|
23
|
+
features.mainThreadMediaSourceInit = MediaSourceContentInitializer;
|
|
30
24
|
}
|
|
31
25
|
|
|
32
26
|
export { addMetaPlaylistFeature as METAPLAYLIST };
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import type { IFeaturesObject } from "../../features/types";
|
|
2
|
-
import
|
|
3
|
-
import MediaSourceContentInitializer from "../../main_thread/init/media_source_content_initializer";
|
|
2
|
+
import MultiThreadContentInitializer from "../../main_thread/init/multi_thread_content_initializer";
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* Add ability to run the RxPlayer's main buffering logic in a WebMultiThread.
|
|
7
6
|
* @param {Object} features
|
|
8
7
|
*/
|
|
9
8
|
function addMultiThreadFeature(features: IFeaturesObject): void {
|
|
10
|
-
features.multithread = {
|
|
11
|
-
init: MediaSourceContentInitializer,
|
|
12
|
-
coreInterface: WorkerCoreInterface,
|
|
13
|
-
};
|
|
9
|
+
features.multithread = { init: MultiThreadContentInitializer };
|
|
14
10
|
}
|
|
15
11
|
|
|
16
12
|
export { addMultiThreadFeature as MULTI_THREAD };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import initializeCoreEntry from "../../../core/entry";
|
|
3
|
-
import { MonoThreadCoreInterface } from "../../../main_thread/core_interface/monothread";
|
|
4
2
|
import MediaSourceContentInitializer from "../../../main_thread/init/media_source_content_initializer";
|
|
5
3
|
import dashJsParser from "../../../parsers/manifest/dash/js-parser";
|
|
6
4
|
import DASHFeature from "../../../transports/dash";
|
|
@@ -12,22 +10,15 @@ describe("Features list - DASH", () => {
|
|
|
12
10
|
const featureObject = {
|
|
13
11
|
transports: {},
|
|
14
12
|
dashParsers: { js: null, wasm: null },
|
|
15
|
-
|
|
13
|
+
mainThreadMediaSourceInit: null,
|
|
16
14
|
} as unknown as IFeaturesObject;
|
|
17
15
|
addDASHFeature(featureObject);
|
|
18
16
|
expect(featureObject).toEqual({
|
|
19
17
|
transports: { dash: DASHFeature },
|
|
20
18
|
dashParsers: { js: dashJsParser, wasm: null },
|
|
21
|
-
|
|
22
|
-
init: MediaSourceContentInitializer,
|
|
23
|
-
coreInterface: MonoThreadCoreInterface,
|
|
24
|
-
initializeCoreEntry,
|
|
25
|
-
},
|
|
19
|
+
mainThreadMediaSourceInit: MediaSourceContentInitializer,
|
|
26
20
|
});
|
|
27
21
|
expect(featureObject.transports.dash).toBe(DASHFeature);
|
|
28
|
-
expect(featureObject.
|
|
29
|
-
expect(featureObject.monothread?.init).toBe(MediaSourceContentInitializer);
|
|
30
|
-
expect(featureObject.monothread?.coreInterface).toBe(MonoThreadCoreInterface);
|
|
31
|
-
expect(featureObject.monothread?.initializeCoreEntry).toBe(initializeCoreEntry);
|
|
22
|
+
expect(featureObject.mainThreadMediaSourceInit).toBe(MediaSourceContentInitializer);
|
|
32
23
|
});
|
|
33
24
|
});
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import initializeCoreEntry from "../../../core/entry";
|
|
3
|
-
import { MonoThreadCoreInterface } from "../../../main_thread/core_interface/monothread";
|
|
4
2
|
import MediaSourceContentInitializer from "../../../main_thread/init/media_source_content_initializer";
|
|
5
3
|
import SmoothFeature from "../../../transports/smooth";
|
|
6
4
|
import type { IFeaturesObject } from "../../types";
|
|
@@ -12,16 +10,9 @@ describe("Features list - Smooth", () => {
|
|
|
12
10
|
addSmoothFeature(featureObject);
|
|
13
11
|
expect(featureObject).toEqual({
|
|
14
12
|
transports: { smooth: SmoothFeature },
|
|
15
|
-
|
|
16
|
-
init: MediaSourceContentInitializer,
|
|
17
|
-
coreInterface: MonoThreadCoreInterface,
|
|
18
|
-
initializeCoreEntry,
|
|
19
|
-
},
|
|
13
|
+
mainThreadMediaSourceInit: MediaSourceContentInitializer,
|
|
20
14
|
});
|
|
21
15
|
expect(featureObject.transports.smooth).toBe(SmoothFeature);
|
|
22
|
-
expect(featureObject.
|
|
23
|
-
expect(featureObject.monothread?.init).toBe(MediaSourceContentInitializer);
|
|
24
|
-
expect(featureObject.monothread?.coreInterface).toBe(MonoThreadCoreInterface);
|
|
25
|
-
expect(featureObject.monothread?.initializeCoreEntry).toBe(initializeCoreEntry);
|
|
16
|
+
expect(featureObject.mainThreadMediaSourceInit).toBe(MediaSourceContentInitializer);
|
|
26
17
|
});
|
|
27
18
|
});
|
|
@@ -14,8 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import initializeCoreEntry from "../../core/entry";
|
|
18
|
-
import { MonoThreadCoreInterface } from "../../main_thread/core_interface/monothread";
|
|
19
17
|
import MediaSourceContentInitializer from "../../main_thread/init/media_source_content_initializer";
|
|
20
18
|
import dashJsParser from "../../parsers/manifest/dash/js-parser";
|
|
21
19
|
import dash from "../../transports/dash";
|
|
@@ -30,11 +28,7 @@ function addDASHFeature(features: IFeaturesObject): void {
|
|
|
30
28
|
features.transports.dash = dash;
|
|
31
29
|
}
|
|
32
30
|
features.dashParsers.js = dashJsParser;
|
|
33
|
-
features.
|
|
34
|
-
init: MediaSourceContentInitializer,
|
|
35
|
-
coreInterface: MonoThreadCoreInterface,
|
|
36
|
-
initializeCoreEntry,
|
|
37
|
-
};
|
|
31
|
+
features.mainThreadMediaSourceInit = MediaSourceContentInitializer;
|
|
38
32
|
}
|
|
39
33
|
|
|
40
34
|
export { addDASHFeature as DASH };
|
|
@@ -14,9 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import initializeCoreEntry from "../../core/entry";
|
|
18
17
|
import type { IFeaturesObject } from "../../features/types";
|
|
19
|
-
import { MonoThreadCoreInterface } from "../../main_thread/core_interface/monothread";
|
|
20
18
|
import MediaSourceContentInitializer from "../../main_thread/init/media_source_content_initializer";
|
|
21
19
|
import type { IDashWasmParserOptions } from "../../parsers/manifest/dash/wasm-parser";
|
|
22
20
|
import DashWasmParser from "../../parsers/manifest/dash/wasm-parser";
|
|
@@ -29,11 +27,7 @@ const dashWasmFeature = {
|
|
|
29
27
|
features.transports.dash = dash;
|
|
30
28
|
}
|
|
31
29
|
features.dashParsers.wasm = dashWasmParser;
|
|
32
|
-
features.
|
|
33
|
-
init: MediaSourceContentInitializer,
|
|
34
|
-
coreInterface: MonoThreadCoreInterface,
|
|
35
|
-
initializeCoreEntry,
|
|
36
|
-
};
|
|
30
|
+
features.mainThreadMediaSourceInit = MediaSourceContentInitializer;
|
|
37
31
|
},
|
|
38
32
|
|
|
39
33
|
initialize(opts: IDashWasmParserOptions): Promise<void> {
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import initializeCoreEntry from "../../core/entry";
|
|
2
|
-
import { MonoThreadCoreInterface } from "../../main_thread/core_interface/monothread";
|
|
3
1
|
import MediaSourceContentInitializer from "../../main_thread/init/media_source_content_initializer";
|
|
4
2
|
import type { IFeaturesObject } from "../types";
|
|
5
3
|
|
|
@@ -8,11 +6,7 @@ import type { IFeaturesObject } from "../types";
|
|
|
8
6
|
* @param {Object} features
|
|
9
7
|
*/
|
|
10
8
|
function addMediaSourceMainFeature(features: IFeaturesObject): void {
|
|
11
|
-
features.
|
|
12
|
-
init: MediaSourceContentInitializer,
|
|
13
|
-
coreInterface: MonoThreadCoreInterface,
|
|
14
|
-
initializeCoreEntry,
|
|
15
|
-
};
|
|
9
|
+
features.mainThreadMediaSourceInit = MediaSourceContentInitializer;
|
|
16
10
|
}
|
|
17
11
|
|
|
18
12
|
export { addMediaSourceMainFeature as MEDIA_SOURCE_MAIN };
|
|
@@ -14,8 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import initializeCoreEntry from "../../core/entry";
|
|
18
|
-
import { MonoThreadCoreInterface } from "../../main_thread/core_interface/monothread";
|
|
19
17
|
import MediaSourceContentInitializer from "../../main_thread/init/media_source_content_initializer";
|
|
20
18
|
import smooth from "../../transports/smooth";
|
|
21
19
|
import type { IFeaturesObject } from "../types";
|
|
@@ -28,11 +26,7 @@ function addSmoothFeature(features: IFeaturesObject): void {
|
|
|
28
26
|
if (features.transports.smooth === undefined) {
|
|
29
27
|
features.transports.smooth = smooth;
|
|
30
28
|
}
|
|
31
|
-
features.
|
|
32
|
-
init: MediaSourceContentInitializer,
|
|
33
|
-
coreInterface: MonoThreadCoreInterface,
|
|
34
|
-
initializeCoreEntry,
|
|
35
|
-
};
|
|
29
|
+
features.mainThreadMediaSourceInit = MediaSourceContentInitializer;
|
|
36
30
|
}
|
|
37
31
|
|
|
38
32
|
export { addSmoothFeature as SMOOTH };
|
package/src/features/types.ts
CHANGED
|
@@ -15,15 +15,11 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import type { IMediaElement } from "../compat/browser_compatibility_types";
|
|
18
|
-
import type IInitializeCoreEntry from "../core/entry";
|
|
19
18
|
import type { SegmentSink } from "../core/segment_sinks";
|
|
20
|
-
import type {
|
|
21
|
-
WorkerCoreInterface,
|
|
22
|
-
MonoThreadCoreInterface,
|
|
23
|
-
} from "../main_thread/core_interface/types";
|
|
24
19
|
import type ContentDecryptor from "../main_thread/decrypt";
|
|
25
20
|
import type DirectFileContentInitializer from "../main_thread/init/directfile_content_initializer";
|
|
26
21
|
import type MediaSourceContentInitializer from "../main_thread/init/media_source_content_initializer";
|
|
22
|
+
import type MultiThreadContentInitializer from "../main_thread/init/multi_thread_content_initializer";
|
|
27
23
|
import type HTMLTextDisplayer from "../main_thread/text_displayer/html";
|
|
28
24
|
import type NativeTextDisplayer from "../main_thread/text_displayer/native/native_text_displayer";
|
|
29
25
|
import type MediaElementTracksStore from "../main_thread/tracks_store/media_element_tracks_store";
|
|
@@ -118,29 +114,14 @@ export interface IFeaturesObject {
|
|
|
118
114
|
* Feature allowing to load contents through MediaSource API through the
|
|
119
115
|
* main thread.
|
|
120
116
|
*/
|
|
121
|
-
|
|
122
|
-
/** Class to load a content through the MediaSource API. */
|
|
123
|
-
init: typeof MediaSourceContentInitializer;
|
|
124
|
-
/** The RxPlayer's core logic. */
|
|
125
|
-
initializeCoreEntry: typeof IInitializeCoreEntry;
|
|
126
|
-
/**
|
|
127
|
-
* Class allowing to exchange messages with the RxPlayer's `core`, here
|
|
128
|
-
* running in `coreEntry`
|
|
129
|
-
*/
|
|
130
|
-
coreInterface: typeof MonoThreadCoreInterface;
|
|
131
|
-
} | null;
|
|
117
|
+
mainThreadMediaSourceInit: typeof MediaSourceContentInitializer | null;
|
|
132
118
|
/**
|
|
133
119
|
* Features allowing to load contents through MediaSource API through
|
|
134
120
|
* a WebWorker.
|
|
135
121
|
*/
|
|
136
122
|
multithread: {
|
|
137
|
-
/** Class to load a content through
|
|
138
|
-
init: typeof
|
|
139
|
-
/**
|
|
140
|
-
* Class allowing to exchange messages with the RxPlayer's `core`, here
|
|
141
|
-
* running in another thread.
|
|
142
|
-
*/
|
|
143
|
-
coreInterface: typeof WorkerCoreInterface;
|
|
123
|
+
/** Class to load a content through MediaSource API via a WebWorker. */
|
|
124
|
+
init: typeof MultiThreadContentInitializer;
|
|
144
125
|
} | null;
|
|
145
126
|
/**
|
|
146
127
|
* Function for loading and parsing contents through various protocols, by
|
|
@@ -27,14 +27,6 @@ Those modules are:
|
|
|
27
27
|
Negotiate content decryption. Only used for contents with DRM (Digital Right
|
|
28
28
|
Management).
|
|
29
29
|
|
|
30
|
-
- **the `CoreInterface` (./core_interface)**
|
|
31
|
-
|
|
32
|
-
Provide an interface allowing to communicate to the central RxPlayer logic in the `core`
|
|
33
|
-
directory (`../core/`), which may run in another thread.
|
|
34
|
-
|
|
35
|
-
That interface depends on the context (e.g. depending on if we are playing in a
|
|
36
|
-
mono-threaded mode or a multithreaded mode).
|
|
37
|
-
|
|
38
30
|
- **the `TracksStore` (or `MediaElementTracksStore`) (./tracks_store)**
|
|
39
31
|
|
|
40
32
|
Ease up text/audio/video track switching to provide a simple-to-use API.
|
|
@@ -38,9 +38,7 @@ import type {
|
|
|
38
38
|
IInbandEvent,
|
|
39
39
|
IABRThrottlers,
|
|
40
40
|
IBufferType,
|
|
41
|
-
ICoreMessage,
|
|
42
41
|
} from "../../core/types";
|
|
43
|
-
import { CoreMessageType } from "../../core/types";
|
|
44
42
|
import type { IDefaultConfig } from "../../default_config";
|
|
45
43
|
import type { IErrorCode, IErrorType } from "../../errors";
|
|
46
44
|
import { ErrorCodes, ErrorTypes, formatError, MediaError } from "../../errors";
|
|
@@ -62,10 +60,13 @@ import {
|
|
|
62
60
|
getMaximumSafePosition,
|
|
63
61
|
getMinimumSafePosition,
|
|
64
62
|
ManifestMetadataFormat,
|
|
63
|
+
createRepresentationFilterFromFnString,
|
|
65
64
|
getPeriodForTime,
|
|
66
65
|
toVideoRepresentation,
|
|
67
66
|
toAudioRepresentation,
|
|
68
67
|
} from "../../manifest";
|
|
68
|
+
import type { IWorkerMessage } from "../../multithread_types";
|
|
69
|
+
import { MainThreadMessageType, WorkerMessageType } from "../../multithread_types";
|
|
69
70
|
import type { IPlaybackObservation } from "../../playback_observer";
|
|
70
71
|
import MediaElementPlaybackObserver from "../../playback_observer/media_element_playback_observer";
|
|
71
72
|
import type {
|
|
@@ -132,7 +133,6 @@ import type { ContentInitializer } from "../init";
|
|
|
132
133
|
import renderThumbnail from "../render_thumbnail";
|
|
133
134
|
import type { IMediaElementTracksStore, ITSPeriodObject } from "../tracks_store";
|
|
134
135
|
import TracksStore from "../tracks_store";
|
|
135
|
-
import { MainThreadMessageType } from "../types";
|
|
136
136
|
import type { IParsedLoadVideoOptions, IParsedStartAtOption } from "./option_utils";
|
|
137
137
|
import {
|
|
138
138
|
checkReloadOptions,
|
|
@@ -445,7 +445,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
445
445
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
446
446
|
videoElement.preload = "auto";
|
|
447
447
|
|
|
448
|
-
this.version = /* PLAYER_VERSION */ "4.4.1
|
|
448
|
+
this.version = /* PLAYER_VERSION */ "4.4.1";
|
|
449
449
|
this.log = log;
|
|
450
450
|
this.state = "STOPPED";
|
|
451
451
|
this.videoElement = videoElement;
|
|
@@ -572,8 +572,8 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
572
572
|
);
|
|
573
573
|
};
|
|
574
574
|
const handleInitMessages = (msg: MessageEvent) => {
|
|
575
|
-
const msgData = msg.data as unknown as
|
|
576
|
-
if (msgData.type ===
|
|
575
|
+
const msgData = msg.data as unknown as IWorkerMessage;
|
|
576
|
+
if (msgData.type === WorkerMessageType.InitError) {
|
|
577
577
|
log.warn("API", "Processing InitError worker message: detaching worker");
|
|
578
578
|
if (this._priv_worker !== null) {
|
|
579
579
|
this._priv_worker.removeEventListener("message", handleInitMessages);
|
|
@@ -586,7 +586,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
586
586
|
"Worker parser initialization failed: " + msgData.value.errorMessage,
|
|
587
587
|
),
|
|
588
588
|
);
|
|
589
|
-
} else if (msgData.type ===
|
|
589
|
+
} else if (msgData.type === WorkerMessageType.InitSuccess) {
|
|
590
590
|
log.info("API", "InitSuccess received from worker.");
|
|
591
591
|
if (this._priv_worker !== null) {
|
|
592
592
|
this._priv_worker.removeEventListener("message", handleInitMessages);
|
|
@@ -1034,19 +1034,6 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
1034
1034
|
connectionTimeout: requestConfig.segment?.connectionTimeout,
|
|
1035
1035
|
};
|
|
1036
1036
|
|
|
1037
|
-
const transportOptions = {
|
|
1038
|
-
lowLatencyMode,
|
|
1039
|
-
checkMediaSegmentIntegrity,
|
|
1040
|
-
checkManifestIntegrity,
|
|
1041
|
-
referenceDateTime,
|
|
1042
|
-
serverSyncInfos,
|
|
1043
|
-
manifestLoader,
|
|
1044
|
-
segmentLoader,
|
|
1045
|
-
representationFilter: options.representationFilter,
|
|
1046
|
-
__priv_manifestUpdateUrl,
|
|
1047
|
-
__priv_patchLastSegmentInSidx,
|
|
1048
|
-
};
|
|
1049
|
-
|
|
1050
1037
|
const canRunInMultiThread =
|
|
1051
1038
|
features.multithread !== null &&
|
|
1052
1039
|
this._priv_worker !== null &&
|
|
@@ -1057,33 +1044,39 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
1057
1044
|
) &&
|
|
1058
1045
|
typeof options.representationFilter !== "function";
|
|
1059
1046
|
if (mode === "main" || (mode === "auto" && !canRunInMultiThread)) {
|
|
1060
|
-
if (features.
|
|
1047
|
+
if (features.mainThreadMediaSourceInit === null) {
|
|
1061
1048
|
throw new Error(
|
|
1062
1049
|
"Cannot load video, neither in a WebWorker nor with the " +
|
|
1063
1050
|
"`MEDIA_SOURCE_MAIN` feature",
|
|
1064
1051
|
);
|
|
1065
1052
|
}
|
|
1053
|
+
const transportFn = features.transports[transport];
|
|
1054
|
+
if (typeof transportFn !== "function") {
|
|
1055
|
+
// Stop previous content and reset its state
|
|
1056
|
+
this.stop();
|
|
1057
|
+
this._priv_currentError = null;
|
|
1058
|
+
throw new Error(`transport "${transport}" not supported`);
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
const representationFilter =
|
|
1062
|
+
typeof options.representationFilter === "string"
|
|
1063
|
+
? createRepresentationFilterFromFnString(options.representationFilter)
|
|
1064
|
+
: options.representationFilter;
|
|
1065
|
+
|
|
1066
1066
|
log.info("API", "Initializing MediaSource mode in the main thread");
|
|
1067
|
-
const
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
logLevel: log.getLevel(),
|
|
1079
|
-
logFormat: log.getFormat(),
|
|
1080
|
-
sendBackLogs: false,
|
|
1081
|
-
date: Date.now(),
|
|
1082
|
-
timestamp: getMonotonicTimeStamp(),
|
|
1083
|
-
},
|
|
1067
|
+
const transportPipelines = transportFn({
|
|
1068
|
+
lowLatencyMode,
|
|
1069
|
+
checkMediaSegmentIntegrity,
|
|
1070
|
+
checkManifestIntegrity,
|
|
1071
|
+
manifestLoader,
|
|
1072
|
+
referenceDateTime,
|
|
1073
|
+
representationFilter,
|
|
1074
|
+
segmentLoader,
|
|
1075
|
+
serverSyncInfos,
|
|
1076
|
+
__priv_manifestUpdateUrl,
|
|
1077
|
+
__priv_patchLastSegmentInSidx,
|
|
1084
1078
|
});
|
|
1085
|
-
initializer = new features.
|
|
1086
|
-
coreInterface,
|
|
1079
|
+
initializer = new features.mainThreadMediaSourceInit({
|
|
1087
1080
|
adaptiveOptions,
|
|
1088
1081
|
autoPlay,
|
|
1089
1082
|
bufferOptions,
|
|
@@ -1092,15 +1085,13 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
1092
1085
|
experimentalOptions.enableRepresentationAvoidance,
|
|
1093
1086
|
keySystems,
|
|
1094
1087
|
lowLatencyMode,
|
|
1095
|
-
transport,
|
|
1096
|
-
transportOptions,
|
|
1088
|
+
transport: transportPipelines,
|
|
1097
1089
|
manifestRequestSettings,
|
|
1098
1090
|
segmentRequestOptions,
|
|
1099
1091
|
speed: this._priv_speed,
|
|
1100
1092
|
startAt,
|
|
1101
1093
|
textTrackOptions,
|
|
1102
1094
|
url,
|
|
1103
|
-
useMseInWorker: false,
|
|
1104
1095
|
});
|
|
1105
1096
|
} else {
|
|
1106
1097
|
if (features.multithread === null) {
|
|
@@ -1117,8 +1108,19 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
1117
1108
|
assert(typeof options.representationFilter !== "function");
|
|
1118
1109
|
useWorker = true;
|
|
1119
1110
|
log.info("API", "Initializing MediaSource mode in a WebWorker");
|
|
1111
|
+
const transportOptions = {
|
|
1112
|
+
lowLatencyMode,
|
|
1113
|
+
checkMediaSegmentIntegrity,
|
|
1114
|
+
checkManifestIntegrity,
|
|
1115
|
+
referenceDateTime,
|
|
1116
|
+
serverSyncInfos,
|
|
1117
|
+
manifestLoader: undefined,
|
|
1118
|
+
segmentLoader: undefined,
|
|
1119
|
+
representationFilter: options.representationFilter,
|
|
1120
|
+
__priv_manifestUpdateUrl,
|
|
1121
|
+
__priv_patchLastSegmentInSidx,
|
|
1122
|
+
};
|
|
1120
1123
|
initializer = new features.multithread.init({
|
|
1121
|
-
coreInterface: new features.multithread.coreInterface(this._priv_worker),
|
|
1122
1124
|
adaptiveOptions,
|
|
1123
1125
|
autoPlay,
|
|
1124
1126
|
bufferOptions,
|
|
@@ -1127,13 +1129,13 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
1127
1129
|
experimentalOptions.enableRepresentationAvoidance,
|
|
1128
1130
|
keySystems,
|
|
1129
1131
|
lowLatencyMode,
|
|
1130
|
-
transport,
|
|
1131
1132
|
transportOptions,
|
|
1132
1133
|
manifestRequestSettings,
|
|
1133
1134
|
segmentRequestOptions,
|
|
1134
1135
|
speed: this._priv_speed,
|
|
1135
1136
|
startAt,
|
|
1136
1137
|
textTrackOptions,
|
|
1138
|
+
worker: this._priv_worker,
|
|
1137
1139
|
url,
|
|
1138
1140
|
useMseInWorker: hasMseInWorker,
|
|
1139
1141
|
});
|
|
@@ -1164,7 +1166,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
1164
1166
|
}
|
|
1165
1167
|
|
|
1166
1168
|
/** Global "playback observer" which will emit playback conditions */
|
|
1167
|
-
const playbackObserver = new MediaElementPlaybackObserver(
|
|
1169
|
+
const playbackObserver = new MediaElementPlaybackObserver({
|
|
1168
1170
|
withMediaSource: !isDirectFile,
|
|
1169
1171
|
lowLatencyMode,
|
|
1170
1172
|
});
|
|
@@ -1287,6 +1289,8 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
1287
1289
|
// content.
|
|
1288
1290
|
this.stop();
|
|
1289
1291
|
|
|
1292
|
+
playbackObserver.attachMediaElement(videoElement);
|
|
1293
|
+
|
|
1290
1294
|
// Update the RxPlayer's state at the right events
|
|
1291
1295
|
const playerStateRef = constructPlayerStateReference(
|
|
1292
1296
|
initializer,
|
|
@@ -3574,7 +3578,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
3574
3578
|
}
|
|
3575
3579
|
}
|
|
3576
3580
|
}
|
|
3577
|
-
Player.version = /* PLAYER_VERSION */ "4.4.1
|
|
3581
|
+
Player.version = /* PLAYER_VERSION */ "4.4.1";
|
|
3578
3582
|
|
|
3579
3583
|
/** Every events sent by the RxPlayer's public API. */
|
|
3580
3584
|
interface IPublicAPIEvent {
|