rx-player 4.4.0 → 4.4.1-dev.2025101500
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +52 -113
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/core/{main/common → entry}/FreezeResolver.d.ts +3 -3
- package/dist/commonjs/core/entry/FreezeResolver.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/FreezeResolver.js +3 -3
- package/dist/{es2017/core/main/worker → commonjs/core/entry}/content_preparer.d.ts +22 -15
- package/dist/commonjs/core/entry/content_preparer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker → entry}/content_preparer.js +62 -64
- package/dist/{es2017/core/main/common → commonjs/core/entry}/content_time_boundaries_observer.d.ts +5 -5
- package/dist/commonjs/core/entry/content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/content_time_boundaries_observer.js +6 -6
- package/dist/commonjs/core/entry/core_entry.d.ts +36 -0
- package/dist/commonjs/core/entry/core_entry.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker/worker_main.js → entry/core_entry.js} +192 -153
- package/dist/commonjs/core/{main/worker/worker_text_displayer_interface.d.ts → entry/core_text_displayer_interface.d.ts} +11 -11
- package/dist/commonjs/core/entry/core_text_displayer_interface.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker/worker_text_displayer_interface.js → entry/core_text_displayer_interface.js} +22 -22
- package/dist/commonjs/core/{main/common → entry}/create_content_time_boundaries_observer.d.ts +6 -6
- package/dist/commonjs/core/entry/create_content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/create_content_time_boundaries_observer.js +1 -1
- package/dist/commonjs/core/{main/common → entry}/get_buffered_data_per_media_buffer.d.ts +4 -4
- package/dist/commonjs/core/entry/get_buffered_data_per_media_buffer.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/get_buffered_data_per_media_buffer.js +1 -1
- package/dist/{es2017/core/main/common → commonjs/core/entry}/get_thumbnail_data.d.ts +3 -3
- package/dist/commonjs/core/entry/get_thumbnail_data.d.ts.map +1 -0
- package/dist/commonjs/core/{main/common → entry}/get_thumbnail_data.js +2 -2
- package/dist/commonjs/core/entry/index.d.ts +5 -0
- package/dist/commonjs/core/entry/index.d.ts.map +1 -0
- package/dist/commonjs/core/entry/index.js +4 -0
- package/dist/{es2017/core/main/common → commonjs/core/entry}/synchronize_sinks_on_observation.d.ts +2 -2
- package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker → entry}/track_choice_setter.d.ts +4 -4
- package/dist/commonjs/core/entry/track_choice_setter.d.ts.map +1 -0
- package/dist/commonjs/core/{main/worker → entry}/track_choice_setter.js +4 -4
- package/dist/commonjs/core/entry/utils.d.ts +3 -0
- package/dist/commonjs/core/entry/utils.d.ts.map +1 -0
- package/dist/commonjs/core/entry/utils.js +11 -0
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +17 -0
- package/dist/commonjs/core/types.d.ts +519 -1
- package/dist/commonjs/core/types.d.ts.map +1 -1
- package/dist/commonjs/core/types.js +1 -0
- package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
- package/dist/commonjs/experimental/features/local.js +7 -1
- package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
- package/dist/commonjs/experimental/features/metaplaylist.js +7 -1
- package/dist/commonjs/experimental/features/multi_thread.d.ts.map +1 -1
- package/dist/commonjs/experimental/features/multi_thread.js +6 -2
- package/dist/commonjs/features/features_object.js +1 -1
- package/dist/commonjs/features/list/dash.d.ts.map +1 -1
- package/dist/commonjs/features/list/dash.js +7 -1
- package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
- package/dist/commonjs/features/list/dash_wasm.js +7 -1
- package/dist/commonjs/features/list/media_source_main.d.ts.map +1 -1
- package/dist/commonjs/features/list/media_source_main.js +7 -1
- package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
- package/dist/commonjs/features/list/smooth.js +7 -1
- package/dist/commonjs/features/types.d.ts +20 -4
- package/dist/commonjs/features/types.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +39 -42
- package/dist/commonjs/main_thread/core_interface/base.d.ts +13 -0
- package/dist/commonjs/main_thread/core_interface/base.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/base.js +32 -0
- package/dist/commonjs/main_thread/core_interface/monothread.d.ts +13 -0
- package/dist/commonjs/main_thread/core_interface/monothread.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/monothread.js +56 -0
- package/dist/commonjs/main_thread/core_interface/multithread.d.ts +25 -0
- package/dist/commonjs/main_thread/core_interface/multithread.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/multithread.js +67 -0
- package/dist/commonjs/main_thread/core_interface/types.d.ts +6 -0
- package/dist/commonjs/main_thread/core_interface/types.d.ts.map +1 -0
- package/dist/commonjs/main_thread/core_interface/types.js +2 -0
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +166 -108
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +1492 -919
- package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +2 -1
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/commonjs/main_thread/types.d.ts +537 -0
- package/dist/commonjs/main_thread/types.d.ts.map +1 -1
- package/dist/commonjs/manifest/utils.d.ts.map +1 -1
- package/dist/commonjs/manifest/utils.js +18 -4
- package/dist/commonjs/mse/worker_media_source_interface.d.ts +2 -2
- package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
- package/dist/commonjs/mse/worker_media_source_interface.js +12 -12
- package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/create_parser.js +31 -27
- package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts +3 -2
- package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.js +16 -7
- package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts +3 -2
- package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.js +37 -6
- package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
- package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts +3 -2
- package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +28 -5
- package/dist/{es2017/playback_observer/worker_playback_observer.d.ts → commonjs/playback_observer/core_playback_observer.d.ts} +8 -8
- package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +1 -0
- package/dist/commonjs/playback_observer/{worker_playback_observer.js → core_playback_observer.js} +13 -13
- package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
- package/dist/commonjs/transports/smooth/pipelines.js +25 -3
- package/dist/commonjs/worker_entry_point.js +62 -2
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/core/{main/common → entry}/FreezeResolver.d.ts +3 -3
- package/dist/es2017/core/entry/FreezeResolver.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/FreezeResolver.js +3 -3
- package/dist/{commonjs/core/main/worker → es2017/core/entry}/content_preparer.d.ts +22 -15
- package/dist/es2017/core/entry/content_preparer.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker → entry}/content_preparer.js +53 -55
- package/dist/{commonjs/core/main/common → es2017/core/entry}/content_time_boundaries_observer.d.ts +5 -5
- package/dist/es2017/core/entry/content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/content_time_boundaries_observer.js +6 -6
- package/dist/es2017/core/entry/core_entry.d.ts +36 -0
- package/dist/es2017/core/entry/core_entry.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker/worker_main.js → entry/core_entry.js} +153 -114
- package/dist/es2017/core/{main/worker/worker_text_displayer_interface.d.ts → entry/core_text_displayer_interface.d.ts} +11 -11
- package/dist/es2017/core/entry/core_text_displayer_interface.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker/worker_text_displayer_interface.js → entry/core_text_displayer_interface.js} +10 -10
- package/dist/es2017/core/{main/common → entry}/create_content_time_boundaries_observer.d.ts +6 -6
- package/dist/es2017/core/entry/create_content_time_boundaries_observer.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/create_content_time_boundaries_observer.js +1 -1
- package/dist/es2017/core/{main/common → entry}/get_buffered_data_per_media_buffer.d.ts +4 -4
- package/dist/es2017/core/entry/get_buffered_data_per_media_buffer.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/get_buffered_data_per_media_buffer.js +1 -1
- package/dist/{commonjs/core/main/common → es2017/core/entry}/get_thumbnail_data.d.ts +3 -3
- package/dist/es2017/core/entry/get_thumbnail_data.d.ts.map +1 -0
- package/dist/es2017/core/{main/common → entry}/get_thumbnail_data.js +2 -2
- package/dist/es2017/core/entry/index.d.ts +5 -0
- package/dist/es2017/core/entry/index.d.ts.map +1 -0
- package/dist/es2017/core/entry/index.js +2 -0
- package/dist/{commonjs/core/main/common → es2017/core/entry}/synchronize_sinks_on_observation.d.ts +2 -2
- package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker → entry}/track_choice_setter.d.ts +4 -4
- package/dist/es2017/core/entry/track_choice_setter.d.ts.map +1 -0
- package/dist/es2017/core/{main/worker → entry}/track_choice_setter.js +4 -4
- package/dist/es2017/core/entry/utils.d.ts +3 -0
- package/dist/es2017/core/entry/utils.d.ts.map +1 -0
- package/dist/es2017/core/entry/utils.js +8 -0
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +18 -1
- package/dist/es2017/core/types.d.ts +519 -1
- package/dist/es2017/core/types.d.ts.map +1 -1
- package/dist/es2017/core/types.js +1 -0
- package/dist/es2017/experimental/features/local.d.ts.map +1 -1
- package/dist/es2017/experimental/features/local.js +7 -1
- package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
- package/dist/es2017/experimental/features/metaplaylist.js +7 -1
- package/dist/es2017/experimental/features/multi_thread.d.ts.map +1 -1
- package/dist/es2017/experimental/features/multi_thread.js +6 -2
- package/dist/es2017/features/features_object.js +1 -1
- package/dist/es2017/features/list/dash.d.ts.map +1 -1
- package/dist/es2017/features/list/dash.js +7 -1
- package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
- package/dist/es2017/features/list/dash_wasm.js +7 -1
- package/dist/es2017/features/list/media_source_main.d.ts.map +1 -1
- package/dist/es2017/features/list/media_source_main.js +7 -1
- package/dist/es2017/features/list/smooth.d.ts.map +1 -1
- package/dist/es2017/features/list/smooth.js +7 -1
- package/dist/es2017/features/types.d.ts +20 -4
- package/dist/es2017/features/types.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.js +40 -43
- package/dist/es2017/main_thread/core_interface/base.d.ts +13 -0
- package/dist/es2017/main_thread/core_interface/base.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/base.js +28 -0
- package/dist/es2017/main_thread/core_interface/monothread.d.ts +13 -0
- package/dist/es2017/main_thread/core_interface/monothread.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/monothread.js +32 -0
- package/dist/es2017/main_thread/core_interface/multithread.d.ts +25 -0
- package/dist/es2017/main_thread/core_interface/multithread.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/multithread.js +45 -0
- package/dist/es2017/main_thread/core_interface/types.d.ts +6 -0
- package/dist/es2017/main_thread/core_interface/types.d.ts.map +1 -0
- package/dist/es2017/main_thread/core_interface/types.js +1 -0
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +166 -108
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +1405 -760
- package/dist/es2017/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/utils/create_core_playback_observer.js +2 -1
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/es2017/main_thread/types.d.ts +537 -0
- package/dist/es2017/main_thread/types.d.ts.map +1 -1
- package/dist/es2017/manifest/utils.d.ts.map +1 -1
- package/dist/es2017/manifest/utils.js +16 -4
- package/dist/es2017/mse/worker_media_source_interface.d.ts +2 -2
- package/dist/es2017/mse/worker_media_source_interface.d.ts.map +1 -1
- package/dist/es2017/mse/worker_media_source_interface.js +12 -12
- package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.js +31 -27
- package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts +3 -2
- package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.js +16 -7
- package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts +3 -2
- package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/parse_protection_node.js +15 -6
- package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
- package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts +3 -2
- package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.js +6 -5
- package/dist/{commonjs/playback_observer/worker_playback_observer.d.ts → es2017/playback_observer/core_playback_observer.d.ts} +8 -8
- package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +1 -0
- package/dist/es2017/playback_observer/{worker_playback_observer.js → core_playback_observer.js} +2 -2
- package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
- package/dist/es2017/transports/smooth/pipelines.js +25 -3
- package/dist/es2017/worker_entry_point.js +62 -2
- package/dist/rx-player.js +21882 -19021
- package/dist/rx-player.min.js +20 -20
- package/dist/worker.js +8 -8
- package/package.json +1 -1
- package/src/README.md +88 -198
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/core/{main/common → entry}/FreezeResolver.ts +7 -7
- package/src/core/{main → entry}/README.md +1 -1
- package/src/core/{main/worker → entry}/content_preparer.ts +77 -76
- package/src/core/{main/common → entry}/content_time_boundaries_observer.ts +10 -10
- package/src/core/{main/worker/worker_main.ts → entry/core_entry.ts} +223 -149
- package/src/core/{main/worker/worker_text_displayer_interface.ts → entry/core_text_displayer_interface.ts} +26 -26
- package/src/core/{main/common → entry}/create_content_time_boundaries_observer.ts +7 -7
- package/src/core/{main/common → entry}/get_buffered_data_per_media_buffer.ts +6 -6
- package/src/core/{main/common → entry}/get_thumbnail_data.ts +5 -5
- package/src/core/entry/index.ts +4 -0
- package/src/core/{main/common → entry}/synchronize_sinks_on_observation.ts +2 -2
- package/src/core/{main/worker → entry}/track_choice_setter.ts +7 -7
- package/src/core/entry/utils.ts +11 -0
- package/src/core/stream/orchestrator/stream_orchestrator.ts +26 -1
- package/src/core/types.ts +631 -3
- package/src/experimental/features/__tests__/local.test.ts +11 -2
- package/src/experimental/features/__tests__/metaplaylist.test.ts +11 -2
- package/src/experimental/features/__tests__/multi_thread.test.ts +8 -3
- package/src/experimental/features/local.ts +7 -1
- package/src/experimental/features/metaplaylist.ts +7 -1
- package/src/experimental/features/multi_thread.ts +6 -2
- package/src/features/features_object.ts +1 -1
- package/src/features/list/__tests__/dash.test.ts +12 -3
- package/src/features/list/__tests__/smooth.test.ts +11 -2
- package/src/features/list/dash.ts +7 -1
- package/src/features/list/dash_wasm.ts +7 -1
- package/src/features/list/media_source_main.ts +7 -1
- package/src/features/list/smooth.ts +7 -1
- package/src/features/types.ts +23 -4
- package/src/main_thread/README.md +8 -0
- package/src/main_thread/api/public_api.ts +46 -48
- package/src/main_thread/core_interface/README.md +22 -0
- package/src/main_thread/core_interface/base.ts +36 -0
- package/src/main_thread/core_interface/monothread.ts +46 -0
- package/src/main_thread/core_interface/multithread.ts +49 -0
- package/src/main_thread/core_interface/types.ts +5 -0
- package/src/main_thread/init/media_source_content_initializer.ts +2034 -1152
- package/src/main_thread/init/utils/create_core_playback_observer.ts +2 -1
- package/src/main_thread/init/utils/update_manifest_codec_support.ts +1 -1
- package/src/main_thread/types.ts +610 -0
- package/src/manifest/utils.ts +20 -4
- package/src/mse/worker_media_source_interface.ts +35 -35
- package/src/parsers/manifest/smooth/create_parser.ts +40 -34
- package/src/parsers/manifest/smooth/parse_C_nodes.ts +19 -8
- package/src/parsers/manifest/smooth/parse_protection_node.ts +17 -9
- package/src/parsers/manifest/smooth/utils/parseBoolean.ts +1 -1
- package/src/parsers/manifest/smooth/utils/reduceChildren.ts +10 -7
- package/src/playback_observer/{worker_playback_observer.ts → core_playback_observer.ts} +13 -13
- package/src/transports/smooth/pipelines.ts +25 -5
- package/src/worker_entry_point.ts +71 -2
- package/dist/commonjs/core/main/common/FreezeResolver.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/get_thumbnail_data.d.ts.map +0 -1
- package/dist/commonjs/core/main/common/synchronize_sinks_on_observation.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/globals.d.ts +0 -14
- package/dist/commonjs/core/main/worker/globals.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/globals.js +0 -26
- package/dist/commonjs/core/main/worker/index.d.ts +0 -3
- package/dist/commonjs/core/main/worker/index.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/index.js +0 -4
- package/dist/commonjs/core/main/worker/send_message.d.ts +0 -4
- package/dist/commonjs/core/main/worker/send_message.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/send_message.js +0 -23
- package/dist/commonjs/core/main/worker/track_choice_setter.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/worker_main.d.ts +0 -2
- package/dist/commonjs/core/main/worker/worker_main.d.ts.map +0 -1
- package/dist/commonjs/core/main/worker/worker_text_displayer_interface.d.ts.map +0 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +0 -308
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +0 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +0 -1713
- package/dist/commonjs/main_thread/init/send_message.d.ts +0 -3
- package/dist/commonjs/main_thread/init/send_message.d.ts.map +0 -1
- package/dist/commonjs/main_thread/init/send_message.js +0 -13
- package/dist/commonjs/multithread_types.d.ts +0 -915
- package/dist/commonjs/multithread_types.d.ts.map +0 -1
- package/dist/commonjs/multithread_types.js +0 -7
- package/dist/commonjs/playback_observer/worker_playback_observer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/FreezeResolver.d.ts.map +0 -1
- package/dist/es2017/core/main/common/content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/create_content_time_boundaries_observer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +0 -1
- package/dist/es2017/core/main/common/get_thumbnail_data.d.ts.map +0 -1
- package/dist/es2017/core/main/common/synchronize_sinks_on_observation.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/content_preparer.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/globals.d.ts +0 -14
- package/dist/es2017/core/main/worker/globals.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/globals.js +0 -18
- package/dist/es2017/core/main/worker/index.d.ts +0 -3
- package/dist/es2017/core/main/worker/index.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/index.js +0 -2
- package/dist/es2017/core/main/worker/send_message.d.ts +0 -4
- package/dist/es2017/core/main/worker/send_message.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/send_message.js +0 -19
- package/dist/es2017/core/main/worker/track_choice_setter.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/worker_main.d.ts +0 -2
- package/dist/es2017/core/main/worker/worker_main.d.ts.map +0 -1
- package/dist/es2017/core/main/worker/worker_text_displayer_interface.d.ts.map +0 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +0 -308
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +0 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +0 -1559
- package/dist/es2017/main_thread/init/send_message.d.ts +0 -3
- package/dist/es2017/main_thread/init/send_message.d.ts.map +0 -1
- package/dist/es2017/main_thread/init/send_message.js +0 -10
- package/dist/es2017/multithread_types.d.ts +0 -915
- package/dist/es2017/multithread_types.d.ts.map +0 -1
- package/dist/es2017/multithread_types.js +0 -6
- package/dist/es2017/playback_observer/worker_playback_observer.d.ts.map +0 -1
- package/src/core/main/worker/globals.ts +0 -38
- package/src/core/main/worker/index.ts +0 -2
- package/src/core/main/worker/send_message.ts +0 -28
- package/src/main_thread/init/multi_thread_content_initializer.ts +0 -2330
- package/src/main_thread/init/send_message.ts +0 -15
- package/src/multithread_types.ts +0 -1095
- /package/dist/commonjs/core/{main/common → entry}/synchronize_sinks_on_observation.js +0 -0
- /package/dist/es2017/core/{main/common → entry}/synchronize_sinks_on_observation.js +0 -0
package/src/core/types.ts
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
|
+
// NOTE: Only types and const enums should be exported by this file
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
ISerializedMediaError,
|
|
5
|
+
ISerializedNetworkError,
|
|
6
|
+
ISerializedEncryptedMediaError,
|
|
7
|
+
ISerializedOtherError,
|
|
8
|
+
} from "../errors";
|
|
9
|
+
import type { IContentProtection, ITextDisplayerData } from "../main_thread/types";
|
|
10
|
+
import type { IManifestMetadata, IPeriodsUpdateResult } from "../manifest";
|
|
11
|
+
import type {
|
|
12
|
+
ISourceBufferInterfaceAppendBufferParameters,
|
|
13
|
+
SourceBufferType,
|
|
14
|
+
} from "../mse";
|
|
15
|
+
import type { ITrackType } from "../public_types";
|
|
16
|
+
import type { IThumbnailResponse } from "../transports";
|
|
17
|
+
import type { ILoggerLevel, ILogNamespace } from "../utils/logger";
|
|
1
18
|
import type {
|
|
2
19
|
IAdaptiveRepresentationSelectorArguments,
|
|
3
20
|
IABRThrottlers,
|
|
4
21
|
IResolutionInfo,
|
|
5
22
|
} from "./adaptive";
|
|
23
|
+
import type { IMessageReceiverCallback } from "./entry";
|
|
6
24
|
import type {
|
|
7
25
|
IManifestFetcherSettings,
|
|
8
26
|
ISegmentQueueCreatorBackoffOptions,
|
|
@@ -13,6 +31,7 @@ import type {
|
|
|
13
31
|
ITextDisplayerInterface,
|
|
14
32
|
} from "./segment_sinks";
|
|
15
33
|
import type SegmentSinksStore from "./segment_sinks";
|
|
34
|
+
import type { ISegmentSinkMetrics } from "./segment_sinks/segment_sinks_store";
|
|
16
35
|
import type {
|
|
17
36
|
IAdaptationChoice,
|
|
18
37
|
IPausedPlaybackObservation,
|
|
@@ -22,9 +41,6 @@ import type {
|
|
|
22
41
|
ITrackSwitchingMode,
|
|
23
42
|
} from "./stream";
|
|
24
43
|
|
|
25
|
-
// NOTE: Only types should be exported by this file: Importing it should
|
|
26
|
-
// not increase a JavaScript bundle's size
|
|
27
|
-
|
|
28
44
|
/** Type of an `SegmentSinksStore` class. */
|
|
29
45
|
export type ISegmentSinksStore = SegmentSinksStore;
|
|
30
46
|
|
|
@@ -33,6 +49,7 @@ export type {
|
|
|
33
49
|
IAdaptiveRepresentationSelectorArguments,
|
|
34
50
|
IABRThrottlers,
|
|
35
51
|
IResolutionInfo,
|
|
52
|
+
|
|
36
53
|
// Fetchers Metadata
|
|
37
54
|
IManifestFetcherSettings,
|
|
38
55
|
ISegmentQueueCreatorBackoffOptions,
|
|
@@ -41,6 +58,7 @@ export type {
|
|
|
41
58
|
IBufferType,
|
|
42
59
|
IBufferedChunk,
|
|
43
60
|
ITextDisplayerInterface,
|
|
61
|
+
|
|
44
62
|
// Stream Metadata
|
|
45
63
|
IAdaptationChoice,
|
|
46
64
|
IInbandEvent,
|
|
@@ -48,4 +66,614 @@ export type {
|
|
|
48
66
|
IStreamOrchestratorPlaybackObservation,
|
|
49
67
|
IRepresentationsChoice,
|
|
50
68
|
ITrackSwitchingMode,
|
|
69
|
+
|
|
70
|
+
// CoreEntry
|
|
71
|
+
IMessageReceiverCallback,
|
|
51
72
|
};
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Format of an RxPlayer error that has been serialized to be able to be
|
|
76
|
+
* easily cloned and be communicated through the `postMessage` API if
|
|
77
|
+
* needed.
|
|
78
|
+
*/
|
|
79
|
+
export type ISentError =
|
|
80
|
+
| ISerializedNetworkError
|
|
81
|
+
| ISerializedMediaError
|
|
82
|
+
| ISerializedEncryptedMediaError
|
|
83
|
+
| ISerializedOtherError;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Message sent by the Core when its initialization finished succesfully.
|
|
87
|
+
*
|
|
88
|
+
* Once that message has been received, you can ensure that no
|
|
89
|
+
* `IInitErrorCoreMessage` will ever be received for that same core instance.
|
|
90
|
+
*
|
|
91
|
+
* Note that receiving this message is not a requirement before preparing and
|
|
92
|
+
* loading a content, both initialization and content loading can be started in
|
|
93
|
+
* parallel.
|
|
94
|
+
*/
|
|
95
|
+
export interface IInitSuccessCoreMessage {
|
|
96
|
+
type: CoreMessageType.InitSuccess;
|
|
97
|
+
value: null;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Message sent by the Core when its initialization finished with an error.
|
|
102
|
+
*
|
|
103
|
+
* Once that message has been received, you can ensure that no
|
|
104
|
+
* `IInitErrorCoreMessage` will ever be received for the same core instance.
|
|
105
|
+
*
|
|
106
|
+
* Note that you may received this message while preparing and/or loading a
|
|
107
|
+
* content, both initialization and content loading can be started in
|
|
108
|
+
* parallel.
|
|
109
|
+
* As such, this message may be coupled with a content error.
|
|
110
|
+
*/
|
|
111
|
+
export interface IInitErrorCoreMessage {
|
|
112
|
+
type: CoreMessageType.InitError;
|
|
113
|
+
value: {
|
|
114
|
+
/** A string describing the error encountered. */
|
|
115
|
+
errorMessage: string;
|
|
116
|
+
|
|
117
|
+
kind: "dashWasmInitialization";
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Message sent by the Core when it want the low-level buffers to be "flushed".
|
|
123
|
+
*
|
|
124
|
+
* A "flush" is an operation which tries to "refresh" the content of low-level
|
|
125
|
+
* media buffers, either to ensure an update to it has been taken into account
|
|
126
|
+
* or to fix a problematic situation.
|
|
127
|
+
*
|
|
128
|
+
* NOTE: This message should not be sent if you want to flush the buffer due to
|
|
129
|
+
* a new decipherability context (e.g. pushed data just became un-decipherable).
|
|
130
|
+
* For that special situation, a specific message,
|
|
131
|
+
* `INeedsDecipherabilityFlushCoreMessage` should be relied on instead.
|
|
132
|
+
*
|
|
133
|
+
* This is most often done via a very small seek.
|
|
134
|
+
*/
|
|
135
|
+
export interface INeedsBufferFlushCoreMessage {
|
|
136
|
+
/** Identify an `INeedsBufferFlushCoreMessage`. */
|
|
137
|
+
type: CoreMessageType.NeedsBufferFlush;
|
|
138
|
+
/** The `contentId` linked to the content that has asked for this flush. */
|
|
139
|
+
contentId: string;
|
|
140
|
+
value:
|
|
141
|
+
| {
|
|
142
|
+
/**
|
|
143
|
+
* The position, relative to the current one in seconds, we should
|
|
144
|
+
* restart playback from after the flush.
|
|
145
|
+
* If set to `0`, we should keep the exact same position. If set to `1`,
|
|
146
|
+
* we should restart playback one second later etc.
|
|
147
|
+
*/
|
|
148
|
+
relativeResumingPosition: number;
|
|
149
|
+
/**
|
|
150
|
+
* If `true`, `relativeResumingPosition` is just a default value
|
|
151
|
+
* proposed as an hint by default by the RxPlayer and can be ignored if
|
|
152
|
+
* not practical in the current context.
|
|
153
|
+
*
|
|
154
|
+
* If `false`, the `relativeResumingPosition` has been explicitly set
|
|
155
|
+
* and should thus be respected.
|
|
156
|
+
*/
|
|
157
|
+
relativePosHasBeenDefaulted: boolean;
|
|
158
|
+
}
|
|
159
|
+
| undefined;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Message sent by the Core when an Error that did not interrupt playback just
|
|
164
|
+
* arised.
|
|
165
|
+
*
|
|
166
|
+
* This can for example be minor request errors.
|
|
167
|
+
*/
|
|
168
|
+
export interface IWarningCoreMessage {
|
|
169
|
+
/** Identify an `IWarningCoreMessage`. */
|
|
170
|
+
type: CoreMessageType.Warning;
|
|
171
|
+
/** Identifier of the content linked to that warning. */
|
|
172
|
+
contentId: string | undefined;
|
|
173
|
+
/** Serialized format for that error. */
|
|
174
|
+
value: ISentError;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Message sent by the Core when an Error that interrupted playback of the
|
|
179
|
+
* current content just happened.
|
|
180
|
+
*
|
|
181
|
+
* It should be assumed that the content is not playing anymore once this
|
|
182
|
+
* message has been sent.
|
|
183
|
+
*/
|
|
184
|
+
export interface IErrorCoreMessage {
|
|
185
|
+
/** Identify an `IErrorCoreMessage`. */
|
|
186
|
+
type: CoreMessageType.Error;
|
|
187
|
+
/** Identifier of the content linked to that error. */
|
|
188
|
+
contentId: string | undefined;
|
|
189
|
+
/** Serialized format for that error. */
|
|
190
|
+
value: ISentError;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Message sent by the Core when it created the `MediaSource` itself and ask it
|
|
195
|
+
* to be attached by the main thread to the media element.
|
|
196
|
+
*
|
|
197
|
+
* This is one of the two ways a `MediaSource` can be created by the RxPlayer,
|
|
198
|
+
* the other one being through an `ICreateMediaSourceCoreMessage` (in which case
|
|
199
|
+
* the `MediaSource` would be created by `Main Thread`, not `Core`). Choosing
|
|
200
|
+
* one or the other depends on browser capabilities and settings.
|
|
201
|
+
*
|
|
202
|
+
* When an `IAttachMediaSourceCoreMessage` is sent, it is understood by the main
|
|
203
|
+
* thread that the role of managing the `MediaSource` itself is handled by the
|
|
204
|
+
* `Core` for the current content, and as such `Core` won't send any
|
|
205
|
+
* `IAddSourceBufferCoreMessage`, `IAppendBufferCoreMessage`,
|
|
206
|
+
* `IRemoveBufferCoreMessage`, `IAbortBufferCoreMessage`,
|
|
207
|
+
* `IUpdateMediaSourceDurationCoreMessage` and other such events that imply a
|
|
208
|
+
* side effect on `MediaSource`-linked API. All those actions should instead be
|
|
209
|
+
* taken by `Core` directly in this scenario.
|
|
210
|
+
*/
|
|
211
|
+
export interface IAttachMediaSourceCoreMessage {
|
|
212
|
+
/** Identify an `IAttachMediaSourceCoreMessage`. */
|
|
213
|
+
type: CoreMessageType.AttachMediaSource;
|
|
214
|
+
/** The `contentId` linked to the current content. */
|
|
215
|
+
contentId: string | undefined;
|
|
216
|
+
/**
|
|
217
|
+
* A unique identifier linked to that `MediaSource`.
|
|
218
|
+
* Will be used to be able to ensure the right `MediaSource` is referred to
|
|
219
|
+
* in future messages.
|
|
220
|
+
*/
|
|
221
|
+
mediaSourceId: string;
|
|
222
|
+
/** Information on the `MediaSource` to attach to the media element. */
|
|
223
|
+
value: IAttachMediaSourceCoreMessagePayload;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/** Payload sent alongside an `IAttachMediaSourceCoreMessage` */
|
|
227
|
+
export type IAttachMediaSourceCoreMessagePayload =
|
|
228
|
+
| {
|
|
229
|
+
/**
|
|
230
|
+
* Identifies a `MediaSource` of the type "handle", in which case the
|
|
231
|
+
* `MediaSource` can be linked to the media element as an object directly.
|
|
232
|
+
*/
|
|
233
|
+
type: "handle";
|
|
234
|
+
/** The corresponding object that should be linked to the media element. */
|
|
235
|
+
value: MediaProvider;
|
|
236
|
+
}
|
|
237
|
+
| {
|
|
238
|
+
/**
|
|
239
|
+
* Identifies a `MediaSource` of the type "url", in which case the `value`
|
|
240
|
+
* will communicate an "object url" that has to be linked to the media
|
|
241
|
+
* element.
|
|
242
|
+
*/
|
|
243
|
+
type: "url";
|
|
244
|
+
/** The object URL that refers to the created `MediaSource`. */
|
|
245
|
+
value: string;
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
export interface ICreateMediaSourceCoreMessage {
|
|
249
|
+
type: CoreMessageType.CreateMediaSource;
|
|
250
|
+
mediaSourceId: string;
|
|
251
|
+
contentId: string;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export interface IAddSourceBufferCoreMessage {
|
|
255
|
+
type: CoreMessageType.AddSourceBuffer;
|
|
256
|
+
mediaSourceId: string;
|
|
257
|
+
value: {
|
|
258
|
+
sourceBufferType: SourceBufferType;
|
|
259
|
+
codec: string;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export interface IAppendBufferCoreMessage {
|
|
264
|
+
type: CoreMessageType.SourceBufferAppend;
|
|
265
|
+
mediaSourceId: string;
|
|
266
|
+
sourceBufferType: SourceBufferType;
|
|
267
|
+
operationId: string;
|
|
268
|
+
value: {
|
|
269
|
+
data: BufferSource;
|
|
270
|
+
params: ISourceBufferInterfaceAppendBufferParameters;
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export interface IRemoveBufferCoreMessage {
|
|
275
|
+
type: CoreMessageType.SourceBufferRemove;
|
|
276
|
+
mediaSourceId: string;
|
|
277
|
+
sourceBufferType: SourceBufferType;
|
|
278
|
+
operationId: string;
|
|
279
|
+
value: {
|
|
280
|
+
/** Start time we should remove data from, in seconds. */
|
|
281
|
+
start: number;
|
|
282
|
+
/** End time we should remove data at, in seconds. */
|
|
283
|
+
end: number;
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export interface IAbortBufferCoreMessage {
|
|
288
|
+
type: CoreMessageType.AbortSourceBuffer;
|
|
289
|
+
mediaSourceId: string;
|
|
290
|
+
sourceBufferType: SourceBufferType;
|
|
291
|
+
value: null;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
export interface IUpdateMediaSourceDurationCoreMessage {
|
|
295
|
+
type: CoreMessageType.UpdateMediaSourceDuration;
|
|
296
|
+
mediaSourceId: string;
|
|
297
|
+
value: {
|
|
298
|
+
duration: number;
|
|
299
|
+
isRealEndKnown: boolean;
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export interface IInterruptMediaSourceDurationCoreMessage {
|
|
304
|
+
type: CoreMessageType.InterruptMediaSourceDurationUpdate;
|
|
305
|
+
mediaSourceId: string;
|
|
306
|
+
value: null;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export interface IEndOfStreamCoreMessage {
|
|
310
|
+
type: CoreMessageType.EndOfStream;
|
|
311
|
+
mediaSourceId: string;
|
|
312
|
+
value: null;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export interface IStopEndOfStreamCoreMessage {
|
|
316
|
+
type: CoreMessageType.InterruptEndOfStream;
|
|
317
|
+
mediaSourceId: string;
|
|
318
|
+
value: null;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface IDisposeMediaSourceCoreMessage {
|
|
322
|
+
type: CoreMessageType.DisposeMediaSource;
|
|
323
|
+
mediaSourceId: string;
|
|
324
|
+
value: null;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
export interface IActivePeriodChangedCoreMessage {
|
|
328
|
+
type: CoreMessageType.ActivePeriodChanged;
|
|
329
|
+
contentId: string;
|
|
330
|
+
value: {
|
|
331
|
+
periodId: string;
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
export interface IAdaptationChangeCoreMessage {
|
|
336
|
+
type: CoreMessageType.AdaptationChanged;
|
|
337
|
+
contentId: string;
|
|
338
|
+
value: {
|
|
339
|
+
adaptationId: string | null;
|
|
340
|
+
periodId: string;
|
|
341
|
+
type: ITrackType;
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export interface IRepresentationChangeCoreMessage {
|
|
346
|
+
type: CoreMessageType.RepresentationChanged;
|
|
347
|
+
contentId: string;
|
|
348
|
+
value: {
|
|
349
|
+
adaptationId: string;
|
|
350
|
+
representationId: string | null;
|
|
351
|
+
periodId: string;
|
|
352
|
+
type: ITrackType;
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/** Message sent by the Core when the Manifest is first loaded. */
|
|
357
|
+
export interface IManifestReadyCoreMessage {
|
|
358
|
+
/** Identify this particular message. */
|
|
359
|
+
type: CoreMessageType.ManifestReady;
|
|
360
|
+
/** The `contentId` linked to this Manifest. */
|
|
361
|
+
contentId: string;
|
|
362
|
+
value: {
|
|
363
|
+
/**
|
|
364
|
+
* The actual `Manifest` loaded.
|
|
365
|
+
*
|
|
366
|
+
* When possible, this should be a `Manifest` instance.
|
|
367
|
+
*
|
|
368
|
+
* Only if this is not possible (e.g. because the `Manifest` cannot be
|
|
369
|
+
* communicated as is between both core and main_thread) might you convert
|
|
370
|
+
* it to another object also respecting the `IManifestMetadata` interface.
|
|
371
|
+
*
|
|
372
|
+
* However doing this might lead to some loss of performance and minor
|
|
373
|
+
* features.
|
|
374
|
+
*/
|
|
375
|
+
manifest: IManifestMetadata;
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/** Message sent by the Core everytime the Manifest is updated. */
|
|
380
|
+
export interface IManifestUpdateCoreMessage {
|
|
381
|
+
/** Identify this particular message. */
|
|
382
|
+
type: CoreMessageType.ManifestUpdate;
|
|
383
|
+
/** The `contentId` linked to this Manifest. */
|
|
384
|
+
contentId: string | undefined;
|
|
385
|
+
value: {
|
|
386
|
+
/**
|
|
387
|
+
* The new manifest once updated.
|
|
388
|
+
*
|
|
389
|
+
* When possible, this should be a `Manifest` instance to improve
|
|
390
|
+
* performance and allow some advanced features.
|
|
391
|
+
*
|
|
392
|
+
* Only if this is not possible (e.g. because the `Manifest` cannot be
|
|
393
|
+
* communicated as is between both core and main_thread) might you convert
|
|
394
|
+
* it to another object also respecting the `IManifestMetadata` interface.
|
|
395
|
+
* In that last case, you're also authorized to reset the `periods` property
|
|
396
|
+
* of that `IManifestMetadata` to an empty array to save up message-passing
|
|
397
|
+
* performance.
|
|
398
|
+
*/
|
|
399
|
+
manifest: IManifestMetadata;
|
|
400
|
+
/**
|
|
401
|
+
* Object describing what has changed in this update.
|
|
402
|
+
*/
|
|
403
|
+
updates: IPeriodsUpdateResult;
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
export interface IEncryptionDataEncounteredCoreMessage {
|
|
408
|
+
type: CoreMessageType.EncryptionDataEncountered;
|
|
409
|
+
contentId: string | undefined;
|
|
410
|
+
value: IContentProtection;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
export interface IUpdatePlaybackRateCoreMessage {
|
|
414
|
+
type: CoreMessageType.UpdatePlaybackRate;
|
|
415
|
+
contentId: string | undefined;
|
|
416
|
+
value: number;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
export interface IReloadingMediaSourceCoreMessage {
|
|
420
|
+
type: CoreMessageType.ReloadingMediaSource;
|
|
421
|
+
/** Identify the MediaSource concerned by this message. */
|
|
422
|
+
mediaSourceId: string;
|
|
423
|
+
value: {
|
|
424
|
+
timeOffset: number;
|
|
425
|
+
minimumPosition?: number | undefined;
|
|
426
|
+
maximumPosition?: number | undefined;
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Message sent by the Core when it want the low-level buffers to be "flushed"
|
|
432
|
+
* with the important caveat that this is linked to a change in decipherability
|
|
433
|
+
* matters (e.g. content just became un-decipherable).
|
|
434
|
+
*
|
|
435
|
+
* A "flush" is an operation which tries to "refresh" the content of low-level
|
|
436
|
+
* media buffers, either to ensure an update to it has been taken into account
|
|
437
|
+
* or to fix a problematic situation.
|
|
438
|
+
*
|
|
439
|
+
* Flush asked in this scenario may lead to aggressive strategies such as
|
|
440
|
+
* switching the `MediaSource` - as the less disruptive scenarios (seeking,
|
|
441
|
+
* play/pause etc.) are often not enough when decipherability is involved.
|
|
442
|
+
*
|
|
443
|
+
* In any case, the `Core` shouldn't care what strategy is chosen to flush. The
|
|
444
|
+
* usual main thread's messages will be enough to handle any scenario without any
|
|
445
|
+
* special effort from Core.
|
|
446
|
+
*/
|
|
447
|
+
export interface INeedsDecipherabilityFlushCoreMessage {
|
|
448
|
+
/** Identify an `INeedsDecipherabilityFlushCoreMessage`. */
|
|
449
|
+
type: CoreMessageType.NeedsDecipherabilityFlush;
|
|
450
|
+
/** The `contentId` linked to the content that has asked for this flush. */
|
|
451
|
+
contentId: string;
|
|
452
|
+
value: null;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
export interface ILockedStreamCoreMessage {
|
|
456
|
+
type: CoreMessageType.LockedStream;
|
|
457
|
+
contentId: string;
|
|
458
|
+
value: {
|
|
459
|
+
/** Period concerned. */
|
|
460
|
+
periodId: string;
|
|
461
|
+
/** Buffer type concerned. */
|
|
462
|
+
bufferType: ITrackType;
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
export interface IBitrateEstimateChangeCoreMessage {
|
|
467
|
+
type: CoreMessageType.BitrateEstimateChange;
|
|
468
|
+
contentId: string;
|
|
469
|
+
value: {
|
|
470
|
+
bitrate: number | undefined;
|
|
471
|
+
bufferType: ITrackType;
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
export interface IInbandEventCoreMessage {
|
|
476
|
+
type: CoreMessageType.InbandEvent;
|
|
477
|
+
contentId: string;
|
|
478
|
+
value: IInbandEvent[];
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
export interface IPeriodStreamReadyCoreMessage {
|
|
482
|
+
type: CoreMessageType.PeriodStreamReady;
|
|
483
|
+
contentId: string;
|
|
484
|
+
value: {
|
|
485
|
+
/** Period concerned. */
|
|
486
|
+
periodId: string;
|
|
487
|
+
/** Buffer type concerned. */
|
|
488
|
+
bufferType: ITrackType;
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
export interface IPeriodStreamClearedCoreMessage {
|
|
493
|
+
type: CoreMessageType.PeriodStreamCleared;
|
|
494
|
+
contentId: string;
|
|
495
|
+
value: {
|
|
496
|
+
/** `id` of the Period concerned. */
|
|
497
|
+
periodId: string;
|
|
498
|
+
/** Buffer type concerned. */
|
|
499
|
+
bufferType: ITrackType;
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
export interface IPushTextDataCoreMessage {
|
|
504
|
+
type: CoreMessageType.PushTextData;
|
|
505
|
+
contentId: string;
|
|
506
|
+
value: ITextDisplayerData;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
export interface IRemoveTextDataCoreMessage {
|
|
510
|
+
type: CoreMessageType.RemoveTextData;
|
|
511
|
+
contentId: string;
|
|
512
|
+
value: {
|
|
513
|
+
start: number;
|
|
514
|
+
end: number;
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
export interface IStopTextDisplayerCoreMessage {
|
|
519
|
+
type: CoreMessageType.StopTextDisplayer;
|
|
520
|
+
contentId: string;
|
|
521
|
+
value: null;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
export interface IResetTextDisplayerCoreMessage {
|
|
525
|
+
type: CoreMessageType.ResetTextDisplayer;
|
|
526
|
+
contentId: string;
|
|
527
|
+
value: null;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
type ISentLogValueBase = boolean | string | number | null | undefined;
|
|
531
|
+
|
|
532
|
+
export type ISentLogValue =
|
|
533
|
+
| ISentLogValueBase
|
|
534
|
+
| ISentError
|
|
535
|
+
| Partial<Record<string, ISentLogValueBase>>;
|
|
536
|
+
|
|
537
|
+
export interface ILogMessageCoreMessage {
|
|
538
|
+
type: CoreMessageType.LogMessage;
|
|
539
|
+
value: {
|
|
540
|
+
namespace: ILogNamespace;
|
|
541
|
+
logLevel: ILoggerLevel;
|
|
542
|
+
logs: ISentLogValue[];
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export interface IDiscontinuityUpdateCoreMessage {
|
|
547
|
+
type: CoreMessageType.DiscontinuityUpdate;
|
|
548
|
+
contentId: string;
|
|
549
|
+
value: IDiscontinuityUpdateCoreMessagePayload;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
export interface IDiscontinuityUpdateCoreMessagePayload {
|
|
553
|
+
periodId: string;
|
|
554
|
+
bufferType: ITrackType;
|
|
555
|
+
discontinuity: IDiscontinuityTimeInfo | null;
|
|
556
|
+
position: number;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
/** Information on a found discontinuity. */
|
|
560
|
+
export interface IDiscontinuityTimeInfo {
|
|
561
|
+
/**
|
|
562
|
+
* Start time of the discontinuity.
|
|
563
|
+
* `undefined` for when the start is unknown but the discontinuity was
|
|
564
|
+
* currently encountered at the position we were in when this event was
|
|
565
|
+
* created.
|
|
566
|
+
*/
|
|
567
|
+
start: number | undefined;
|
|
568
|
+
/**
|
|
569
|
+
* End time of the discontinuity, in seconds.
|
|
570
|
+
* If `null`, no further segment can be loaded for the corresponding Period.
|
|
571
|
+
*/
|
|
572
|
+
end: number | null;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
export interface ISegmentSinkStoreUpdateMessage {
|
|
576
|
+
type: CoreMessageType.SegmentSinkStoreUpdate;
|
|
577
|
+
contentId: string;
|
|
578
|
+
value: {
|
|
579
|
+
segmentSinkMetrics: ISegmentSinkMetrics;
|
|
580
|
+
requestId: number;
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
export interface IThumbnailDataResponseCoreMessage {
|
|
585
|
+
type: CoreMessageType.ThumbnailDataResponse;
|
|
586
|
+
contentId: string;
|
|
587
|
+
value:
|
|
588
|
+
| {
|
|
589
|
+
status: "error";
|
|
590
|
+
requestId: number;
|
|
591
|
+
error: ISentError;
|
|
592
|
+
}
|
|
593
|
+
| {
|
|
594
|
+
status: "success";
|
|
595
|
+
requestId: number;
|
|
596
|
+
data: IThumbnailResponse;
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
export const enum CoreMessageType {
|
|
601
|
+
AbortSourceBuffer = "abort-source-buffer",
|
|
602
|
+
ActivePeriodChanged = "active-period-changed",
|
|
603
|
+
AdaptationChanged = "adaptation-changed",
|
|
604
|
+
AddSourceBuffer = "add-source-buffer",
|
|
605
|
+
AttachMediaSource = "attach-media-source",
|
|
606
|
+
BitrateEstimateChange = "bitrate-estimate-change",
|
|
607
|
+
CreateMediaSource = "create-media-source",
|
|
608
|
+
DiscontinuityUpdate = "discontinuity-update",
|
|
609
|
+
DisposeMediaSource = "dispose-media-source",
|
|
610
|
+
EncryptionDataEncountered = "encryption-data-encountered",
|
|
611
|
+
EndOfStream = "end-of-stream",
|
|
612
|
+
Error = "error",
|
|
613
|
+
InbandEvent = "inband-event",
|
|
614
|
+
InitError = "init-error",
|
|
615
|
+
InitSuccess = "init-success",
|
|
616
|
+
InterruptEndOfStream = "stop-end-of-stream",
|
|
617
|
+
InterruptMediaSourceDurationUpdate = "stop-media-source-duration",
|
|
618
|
+
LockedStream = "locked-stream",
|
|
619
|
+
LogMessage = "log",
|
|
620
|
+
ManifestReady = "manifest-ready",
|
|
621
|
+
ManifestUpdate = "manifest-update",
|
|
622
|
+
NeedsBufferFlush = "needs-buffer-flush",
|
|
623
|
+
NeedsDecipherabilityFlush = "needs-decipherability-flush",
|
|
624
|
+
PeriodStreamCleared = "period-stream-cleared",
|
|
625
|
+
PeriodStreamReady = "period-stream-ready",
|
|
626
|
+
PushTextData = "push-text-data",
|
|
627
|
+
ReloadingMediaSource = "reloading-media-source",
|
|
628
|
+
RemoveTextData = "remove-text-data",
|
|
629
|
+
RepresentationChanged = "representation-changed",
|
|
630
|
+
ResetTextDisplayer = "reset-text-displayer",
|
|
631
|
+
SourceBufferAppend = "source-buffer-append",
|
|
632
|
+
SourceBufferRemove = "source-buffer-remove",
|
|
633
|
+
StopTextDisplayer = "stop-text-displayer",
|
|
634
|
+
UpdateMediaSourceDuration = "update-media-source-duration",
|
|
635
|
+
UpdatePlaybackRate = "update-playback-rate",
|
|
636
|
+
Warning = "warning",
|
|
637
|
+
SegmentSinkStoreUpdate = "segment-sink-store-update",
|
|
638
|
+
ThumbnailDataResponse = "thumbnail-response",
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
export type ICoreMessage =
|
|
642
|
+
| IAbortBufferCoreMessage
|
|
643
|
+
| IActivePeriodChangedCoreMessage
|
|
644
|
+
| IAdaptationChangeCoreMessage
|
|
645
|
+
| IAddSourceBufferCoreMessage
|
|
646
|
+
| IPushTextDataCoreMessage
|
|
647
|
+
| IAppendBufferCoreMessage
|
|
648
|
+
| IAttachMediaSourceCoreMessage
|
|
649
|
+
| IBitrateEstimateChangeCoreMessage
|
|
650
|
+
| ICreateMediaSourceCoreMessage
|
|
651
|
+
| IDiscontinuityUpdateCoreMessage
|
|
652
|
+
| IDisposeMediaSourceCoreMessage
|
|
653
|
+
| IEncryptionDataEncounteredCoreMessage
|
|
654
|
+
| IEndOfStreamCoreMessage
|
|
655
|
+
| IErrorCoreMessage
|
|
656
|
+
| IInbandEventCoreMessage
|
|
657
|
+
| IInitSuccessCoreMessage
|
|
658
|
+
| IInitErrorCoreMessage
|
|
659
|
+
| IInterruptMediaSourceDurationCoreMessage
|
|
660
|
+
| ILockedStreamCoreMessage
|
|
661
|
+
| ILogMessageCoreMessage
|
|
662
|
+
| IManifestReadyCoreMessage
|
|
663
|
+
| IManifestUpdateCoreMessage
|
|
664
|
+
| INeedsBufferFlushCoreMessage
|
|
665
|
+
| INeedsDecipherabilityFlushCoreMessage
|
|
666
|
+
| IPeriodStreamClearedCoreMessage
|
|
667
|
+
| IPeriodStreamReadyCoreMessage
|
|
668
|
+
| IReloadingMediaSourceCoreMessage
|
|
669
|
+
| IRemoveBufferCoreMessage
|
|
670
|
+
| IRemoveTextDataCoreMessage
|
|
671
|
+
| IRepresentationChangeCoreMessage
|
|
672
|
+
| IResetTextDisplayerCoreMessage
|
|
673
|
+
| IStopEndOfStreamCoreMessage
|
|
674
|
+
| IStopTextDisplayerCoreMessage
|
|
675
|
+
| IUpdateMediaSourceDurationCoreMessage
|
|
676
|
+
| IUpdatePlaybackRateCoreMessage
|
|
677
|
+
| IWarningCoreMessage
|
|
678
|
+
| ISegmentSinkStoreUpdateMessage
|
|
679
|
+
| IThumbnailDataResponseCoreMessage;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
+
import initializeCoreEntry from "../../../core/entry";
|
|
2
3
|
import type { IFeaturesObject } from "../../../features/types";
|
|
4
|
+
import { MonoThreadCoreInterface } from "../../../main_thread/core_interface/monothread";
|
|
3
5
|
import MediaSourceContentInitializer from "../../../main_thread/init/media_source_content_initializer";
|
|
4
6
|
import local from "../../../transports/local";
|
|
5
7
|
import addLocalManifestFeature from "../local";
|
|
@@ -10,9 +12,16 @@ describe("Features list - LOCAL_MANIFEST", () => {
|
|
|
10
12
|
addLocalManifestFeature(featureObject);
|
|
11
13
|
expect(featureObject).toEqual({
|
|
12
14
|
transports: { local },
|
|
13
|
-
|
|
15
|
+
monothread: {
|
|
16
|
+
init: MediaSourceContentInitializer,
|
|
17
|
+
coreInterface: MonoThreadCoreInterface,
|
|
18
|
+
initializeCoreEntry,
|
|
19
|
+
},
|
|
14
20
|
});
|
|
15
21
|
expect(featureObject.transports.local).toBe(local);
|
|
16
|
-
expect(featureObject.
|
|
22
|
+
expect(featureObject.monothread).not.toBe(null);
|
|
23
|
+
expect(featureObject.monothread?.init).toBe(MediaSourceContentInitializer);
|
|
24
|
+
expect(featureObject.monothread?.coreInterface).toBe(MonoThreadCoreInterface);
|
|
25
|
+
expect(featureObject.monothread?.initializeCoreEntry).toBe(initializeCoreEntry);
|
|
17
26
|
});
|
|
18
27
|
});
|