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
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { config } from "
|
|
2
|
-
import log from "
|
|
3
|
-
import type { IAdaptation, IPeriod, IRepresentation } from "
|
|
1
|
+
import { config } from "../../experimental";
|
|
2
|
+
import log from "../../log";
|
|
3
|
+
import type { IAdaptation, IPeriod, IRepresentation } from "../../manifest";
|
|
4
4
|
import type {
|
|
5
5
|
IFreezingStatus,
|
|
6
6
|
IRebufferingStatus,
|
|
7
7
|
ObservationPosition,
|
|
8
|
-
} from "
|
|
9
|
-
import getMonotonicTimeStamp from "
|
|
10
|
-
import type SegmentSinksStore from "
|
|
11
|
-
import type { IBufferedChunk } from "
|
|
8
|
+
} from "../../playback_observer";
|
|
9
|
+
import getMonotonicTimeStamp from "../../utils/monotonic_timestamp";
|
|
10
|
+
import type SegmentSinksStore from "../segment_sinks";
|
|
11
|
+
import type { IBufferedChunk } from "../segment_sinks";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* "Freezing" is a complex situation indicating that playback is not advancing
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
| Multithread environment | Should be runnable in a WebWorker entirely |
|
|
7
7
|
|
|
8
8
|
[1] In a Multithreading mode, no file from that directory should ever be imported by
|
|
9
|
-
external code but the `
|
|
9
|
+
external code but the `CoreEntry` to generate the worker bundle. In a monothreading mode,
|
|
10
10
|
any file may be directly imported.
|
|
11
11
|
|
|
12
12
|
## Overview
|
|
@@ -1,41 +1,34 @@
|
|
|
1
|
-
import { MediaSource_ } from "
|
|
2
|
-
import features from "
|
|
3
|
-
import log from "
|
|
4
|
-
import type {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import type
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import type {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
import
|
|
29
|
-
import
|
|
30
|
-
import CdnPrioritizer from "../../fetchers/cdn_prioritizer";
|
|
31
|
-
import createThumbnailFetcher from "../../fetchers/thumbnails/thumbnail_fetcher";
|
|
32
|
-
import type { IThumbnailFetcher } from "../../fetchers/thumbnails/thumbnail_fetcher";
|
|
33
|
-
import SegmentSinksStore from "../../segment_sinks";
|
|
34
|
-
import FreezeResolver from "../common/FreezeResolver";
|
|
35
|
-
import { limitVideoResolution, throttleVideoBitrate } from "./globals";
|
|
36
|
-
import sendMessage, { formatErrorForSender } from "./send_message";
|
|
1
|
+
import { MediaSource_ } from "../../compat/browser_compatibility_types";
|
|
2
|
+
import features from "../../features";
|
|
3
|
+
import log from "../../log";
|
|
4
|
+
import type { IContentInitializationData } from "../../main_thread/types";
|
|
5
|
+
import type { IManifest } from "../../manifest";
|
|
6
|
+
import { createRepresentationFilterFromFnString } from "../../manifest";
|
|
7
|
+
import type Manifest from "../../manifest/classes";
|
|
8
|
+
import type { IMediaSourceInterface } from "../../mse";
|
|
9
|
+
import MainMediaSourceInterface from "../../mse/main_media_source_interface";
|
|
10
|
+
import WorkerMediaSourceInterface from "../../mse/worker_media_source_interface";
|
|
11
|
+
import type { IPlayerError } from "../../public_types";
|
|
12
|
+
import idGenerator from "../../utils/id_generator";
|
|
13
|
+
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
14
|
+
import type { CancellationError, CancellationSignal } from "../../utils/task_canceller";
|
|
15
|
+
import TaskCanceller from "../../utils/task_canceller";
|
|
16
|
+
import type { IRepresentationEstimator } from "../adaptive";
|
|
17
|
+
import createAdaptiveRepresentationSelector from "../adaptive";
|
|
18
|
+
import type { IRepresentationEstimatorThrottlers } from "../adaptive/adaptive_representation_selector";
|
|
19
|
+
import CmcdDataBuilder from "../cmcd";
|
|
20
|
+
import type { IManifestRefreshSettings } from "../fetchers";
|
|
21
|
+
import { ManifestFetcher, SegmentQueueCreator } from "../fetchers";
|
|
22
|
+
import CdnPrioritizer from "../fetchers/cdn_prioritizer";
|
|
23
|
+
import createThumbnailFetcher from "../fetchers/thumbnails/thumbnail_fetcher";
|
|
24
|
+
import type { IThumbnailFetcher } from "../fetchers/thumbnails/thumbnail_fetcher";
|
|
25
|
+
import SegmentSinksStore from "../segment_sinks";
|
|
26
|
+
import type { IAttachMediaSourceCoreMessagePayload, ICoreMessage } from "../types";
|
|
27
|
+
import { CoreMessageType } from "../types";
|
|
28
|
+
import CoreTextDisplayerInterface from "./core_text_displayer_interface";
|
|
29
|
+
import FreezeResolver from "./FreezeResolver";
|
|
37
30
|
import TrackChoiceSetter from "./track_choice_setter";
|
|
38
|
-
import
|
|
31
|
+
import { formatErrorForSender } from "./utils";
|
|
39
32
|
|
|
40
33
|
/** Function allowing to associate a unique identifier to all created `MediaSource` */
|
|
41
34
|
const generateMediaSourceId = idGenerator();
|
|
@@ -111,8 +104,11 @@ export default class ContentPreparer {
|
|
|
111
104
|
* @returns {Promise.<Object>}
|
|
112
105
|
*/
|
|
113
106
|
public initializeNewContent(
|
|
107
|
+
sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void,
|
|
114
108
|
context: IContentInitializationData,
|
|
115
|
-
|
|
109
|
+
/** Allows to filter which Representations can be choosen. */
|
|
110
|
+
throttlers: IRepresentationEstimatorThrottlers,
|
|
111
|
+
): Promise<IManifest> {
|
|
116
112
|
return new Promise((res, rej) => {
|
|
117
113
|
this.disposeCurrentContent();
|
|
118
114
|
const contentCanceller = this._contentCanceller;
|
|
@@ -128,19 +124,25 @@ export default class ContentPreparer {
|
|
|
128
124
|
transportOptions,
|
|
129
125
|
useMseInWorker,
|
|
130
126
|
enableRepresentationAvoidance,
|
|
127
|
+
transport,
|
|
131
128
|
} = context;
|
|
132
129
|
let manifest: IManifest | null = null;
|
|
133
130
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
131
|
+
const transportFn = features.transports[transport];
|
|
132
|
+
if (typeof transportFn !== "function") {
|
|
133
|
+
rej(
|
|
134
|
+
new Error(
|
|
135
|
+
`transport "${transport}" not supported. ` +
|
|
136
|
+
"Did you add the corresponding feature?",
|
|
137
|
+
),
|
|
138
|
+
);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
139
141
|
const representationFilter =
|
|
140
142
|
typeof transportOptions.representationFilter === "string"
|
|
141
143
|
? createRepresentationFilterFromFnString(transportOptions.representationFilter)
|
|
142
|
-
:
|
|
143
|
-
const
|
|
144
|
+
: transportOptions.representationFilter;
|
|
145
|
+
const transportPipelines = transportFn({
|
|
144
146
|
...transportOptions,
|
|
145
147
|
representationFilter,
|
|
146
148
|
});
|
|
@@ -149,7 +151,7 @@ export default class ContentPreparer {
|
|
|
149
151
|
context.cmcd === undefined ? null : new CmcdDataBuilder(context.cmcd);
|
|
150
152
|
const manifestFetcher = new ManifestFetcher(
|
|
151
153
|
url === undefined ? undefined : [url],
|
|
152
|
-
|
|
154
|
+
transportPipelines,
|
|
153
155
|
{
|
|
154
156
|
cmcdDataBuilder,
|
|
155
157
|
...context.manifestRetryOptions,
|
|
@@ -161,10 +163,7 @@ export default class ContentPreparer {
|
|
|
161
163
|
video: context.initialVideoBitrate ?? 0,
|
|
162
164
|
},
|
|
163
165
|
lowLatencyMode: transportOptions.lowLatencyMode,
|
|
164
|
-
throttlers
|
|
165
|
-
limitResolution: { video: limitVideoResolution },
|
|
166
|
-
throttleBitrate: { video: throttleVideoBitrate },
|
|
167
|
-
},
|
|
166
|
+
throttlers,
|
|
168
167
|
});
|
|
169
168
|
|
|
170
169
|
const unbindRejectOnCancellation = currentMediaSourceCanceller.signal.register(
|
|
@@ -175,20 +174,21 @@ export default class ContentPreparer {
|
|
|
175
174
|
|
|
176
175
|
const cdnPrioritizer = new CdnPrioritizer(contentCanceller.signal);
|
|
177
176
|
const segmentQueueCreator = new SegmentQueueCreator(
|
|
178
|
-
|
|
177
|
+
transportPipelines,
|
|
179
178
|
cdnPrioritizer,
|
|
180
179
|
cmcdDataBuilder,
|
|
181
180
|
context.segmentRetryOptions,
|
|
182
181
|
);
|
|
183
182
|
const fetchThumbnailData = createThumbnailFetcher(
|
|
184
|
-
|
|
183
|
+
transportPipelines.thumbnails,
|
|
185
184
|
cdnPrioritizer,
|
|
186
185
|
);
|
|
187
186
|
|
|
188
187
|
const trackChoiceSetter = new TrackChoiceSetter();
|
|
189
188
|
|
|
190
|
-
const [mediaSource, segmentSinksStore,
|
|
189
|
+
const [mediaSource, segmentSinksStore, coreTextSender] =
|
|
191
190
|
createMediaSourceInterfaceAndSegmentSinksStore(
|
|
191
|
+
sendMessage,
|
|
192
192
|
contentId,
|
|
193
193
|
{
|
|
194
194
|
useMseInWorker,
|
|
@@ -210,7 +210,7 @@ export default class ContentPreparer {
|
|
|
210
210
|
segmentSinksStore,
|
|
211
211
|
segmentQueueCreator,
|
|
212
212
|
fetchThumbnailData,
|
|
213
|
-
|
|
213
|
+
coreTextSender,
|
|
214
214
|
trackChoiceSetter,
|
|
215
215
|
useMseInWorker,
|
|
216
216
|
};
|
|
@@ -229,7 +229,7 @@ export default class ContentPreparer {
|
|
|
229
229
|
"warning",
|
|
230
230
|
(err: IPlayerError) => {
|
|
231
231
|
sendMessage({
|
|
232
|
-
type:
|
|
232
|
+
type: CoreMessageType.Warning,
|
|
233
233
|
contentId,
|
|
234
234
|
value: formatErrorForSender(err),
|
|
235
235
|
});
|
|
@@ -255,7 +255,7 @@ export default class ContentPreparer {
|
|
|
255
255
|
"error",
|
|
256
256
|
(err: unknown) => {
|
|
257
257
|
sendMessage({
|
|
258
|
-
type:
|
|
258
|
+
type: CoreMessageType.Error,
|
|
259
259
|
contentId,
|
|
260
260
|
value: formatErrorForSender(err),
|
|
261
261
|
});
|
|
@@ -274,7 +274,6 @@ export default class ContentPreparer {
|
|
|
274
274
|
return;
|
|
275
275
|
}
|
|
276
276
|
updateCodecSupportInWorkerMode(manifest);
|
|
277
|
-
const sentManifest = manifest.getMetadataSnapshot();
|
|
278
277
|
manifest.addEventListener(
|
|
279
278
|
"manifestUpdate",
|
|
280
279
|
(updates) => {
|
|
@@ -282,22 +281,16 @@ export default class ContentPreparer {
|
|
|
282
281
|
// TODO log warn?
|
|
283
282
|
return;
|
|
284
283
|
}
|
|
285
|
-
|
|
286
|
-
// Remove `periods` key to reduce cost of an unnecessary manifest
|
|
287
|
-
// clone.
|
|
288
|
-
const snapshot = objectAssign(manifest.getMetadataSnapshot(), {
|
|
289
|
-
periods: [],
|
|
290
|
-
});
|
|
291
284
|
sendMessage({
|
|
292
|
-
type:
|
|
285
|
+
type: CoreMessageType.ManifestUpdate,
|
|
293
286
|
contentId,
|
|
294
|
-
value: { manifest
|
|
287
|
+
value: { manifest, updates },
|
|
295
288
|
});
|
|
296
289
|
},
|
|
297
290
|
contentCanceller.signal,
|
|
298
291
|
);
|
|
299
292
|
unbindRejectOnCancellation();
|
|
300
|
-
res(
|
|
293
|
+
res(manifest);
|
|
301
294
|
}
|
|
302
295
|
});
|
|
303
296
|
}
|
|
@@ -324,12 +317,17 @@ export default class ContentPreparer {
|
|
|
324
317
|
}
|
|
325
318
|
|
|
326
319
|
/**
|
|
327
|
-
*
|
|
320
|
+
* Change the MediaSource attached for the current content.
|
|
321
|
+
* It is assumed that main thread is already notified that such a reload is
|
|
322
|
+
* happening.
|
|
328
323
|
*
|
|
329
324
|
* The returned Promise resolves when it restarts being ready.
|
|
325
|
+
* @param {Function} sendMessage
|
|
330
326
|
* @returns {Promise}
|
|
331
327
|
*/
|
|
332
|
-
public reloadMediaSource(
|
|
328
|
+
public reloadMediaSource(
|
|
329
|
+
sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void,
|
|
330
|
+
): Promise<void> {
|
|
333
331
|
this._currentMediaSourceCanceller.cancel();
|
|
334
332
|
if (this._currentContent === null) {
|
|
335
333
|
return Promise.reject(new Error("CP: No content anymore"));
|
|
@@ -337,20 +335,21 @@ export default class ContentPreparer {
|
|
|
337
335
|
this._currentContent.trackChoiceSetter.reset();
|
|
338
336
|
this._currentMediaSourceCanceller = new TaskCanceller();
|
|
339
337
|
|
|
340
|
-
const [mediaSourceInterface, segmentSinksStore,
|
|
338
|
+
const [mediaSourceInterface, segmentSinksStore, coreTextSender] =
|
|
341
339
|
createMediaSourceInterfaceAndSegmentSinksStore(
|
|
340
|
+
sendMessage,
|
|
342
341
|
this._currentContent.contentId,
|
|
343
342
|
{
|
|
344
343
|
useMseInWorker: this._currentContent.useMseInWorker,
|
|
345
344
|
hasVideo: this._hasVideo,
|
|
346
|
-
hasText: this._currentContent.
|
|
345
|
+
hasText: this._currentContent.coreTextSender !== null,
|
|
347
346
|
},
|
|
348
347
|
this._currentMediaSourceCanceller.signal,
|
|
349
348
|
);
|
|
350
349
|
this._currentContent.mediaSource = mediaSourceInterface;
|
|
351
350
|
this._currentContent.segmentSinksStore = segmentSinksStore;
|
|
352
351
|
this._currentContent.freezeResolver = new FreezeResolver(segmentSinksStore);
|
|
353
|
-
this._currentContent.
|
|
352
|
+
this._currentContent.coreTextSender = coreTextSender;
|
|
354
353
|
return new Promise((res, rej) => {
|
|
355
354
|
mediaSourceInterface.addEventListener(
|
|
356
355
|
"mediaSourceOpen",
|
|
@@ -433,7 +432,7 @@ export interface IPreparedContentData {
|
|
|
433
432
|
*/
|
|
434
433
|
segmentSinksStore: SegmentSinksStore;
|
|
435
434
|
/** Allows to send timed text media data so it can be rendered. */
|
|
436
|
-
|
|
435
|
+
coreTextSender: CoreTextDisplayerInterface | null;
|
|
437
436
|
/**
|
|
438
437
|
* Allows to create `SegmentQueue` which simplifies complex media segment
|
|
439
438
|
* fetching.
|
|
@@ -455,6 +454,7 @@ export interface IPreparedContentData {
|
|
|
455
454
|
}
|
|
456
455
|
|
|
457
456
|
/**
|
|
457
|
+
* @param {Function} sendMessage
|
|
458
458
|
* @param {string} contentId
|
|
459
459
|
* @param {Object} capabilities
|
|
460
460
|
* @param {boolean} capabilities.useMseInWorker
|
|
@@ -464,6 +464,7 @@ export interface IPreparedContentData {
|
|
|
464
464
|
* @returns {Array.<Object>}
|
|
465
465
|
*/
|
|
466
466
|
function createMediaSourceInterfaceAndSegmentSinksStore(
|
|
467
|
+
sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void,
|
|
467
468
|
contentId: string,
|
|
468
469
|
capabilities: {
|
|
469
470
|
useMseInWorker: boolean;
|
|
@@ -471,13 +472,13 @@ function createMediaSourceInterfaceAndSegmentSinksStore(
|
|
|
471
472
|
hasText: boolean;
|
|
472
473
|
},
|
|
473
474
|
cancelSignal: CancellationSignal,
|
|
474
|
-
): [IMediaSourceInterface, SegmentSinksStore,
|
|
475
|
+
): [IMediaSourceInterface, SegmentSinksStore, CoreTextDisplayerInterface | null] {
|
|
475
476
|
let mediaSourceInterface: IMediaSourceInterface;
|
|
476
477
|
if (capabilities.useMseInWorker) {
|
|
477
478
|
const mainMediaSource = new MainMediaSourceInterface(generateMediaSourceId());
|
|
478
479
|
mediaSourceInterface = mainMediaSource;
|
|
479
480
|
|
|
480
|
-
let sentMediaSourceLink:
|
|
481
|
+
let sentMediaSourceLink: IAttachMediaSourceCoreMessagePayload;
|
|
481
482
|
const handle = mainMediaSource.handle;
|
|
482
483
|
if (handle.type === "handle") {
|
|
483
484
|
sentMediaSourceLink = { type: "handle" as const, value: handle.value };
|
|
@@ -491,7 +492,7 @@ function createMediaSourceInterfaceAndSegmentSinksStore(
|
|
|
491
492
|
|
|
492
493
|
sendMessage(
|
|
493
494
|
{
|
|
494
|
-
type:
|
|
495
|
+
type: CoreMessageType.AttachMediaSource,
|
|
495
496
|
contentId,
|
|
496
497
|
value: sentMediaSourceLink,
|
|
497
498
|
mediaSourceId: mediaSourceInterface.id,
|
|
@@ -507,7 +508,7 @@ function createMediaSourceInterfaceAndSegmentSinksStore(
|
|
|
507
508
|
}
|
|
508
509
|
|
|
509
510
|
const textSender = capabilities.hasText
|
|
510
|
-
? new
|
|
511
|
+
? new CoreTextDisplayerInterface(contentId, sendMessage)
|
|
511
512
|
: null;
|
|
512
513
|
const { hasVideo } = capabilities;
|
|
513
514
|
const segmentSinksStore = new SegmentSinksStore(
|
|
@@ -17,21 +17,21 @@
|
|
|
17
17
|
import type {
|
|
18
18
|
IStreamOrchestratorPlaybackObservation,
|
|
19
19
|
IBufferType,
|
|
20
|
-
} from "
|
|
21
|
-
import { MediaError } from "
|
|
20
|
+
} from "../../core/types";
|
|
21
|
+
import { MediaError } from "../../errors";
|
|
22
22
|
import type {
|
|
23
23
|
IManifest,
|
|
24
24
|
IAdaptation,
|
|
25
25
|
IRepresentationIndex,
|
|
26
26
|
IPeriod,
|
|
27
|
-
} from "
|
|
28
|
-
import type { IReadOnlyPlaybackObserver } from "
|
|
29
|
-
import type { IPlayerError } from "
|
|
30
|
-
import EventEmitter from "
|
|
31
|
-
import isNullOrUndefined from "
|
|
32
|
-
import queueMicrotask from "
|
|
33
|
-
import SortedList from "
|
|
34
|
-
import TaskCanceller from "
|
|
27
|
+
} from "../../manifest";
|
|
28
|
+
import type { IReadOnlyPlaybackObserver } from "../../playback_observer";
|
|
29
|
+
import type { IPlayerError } from "../../public_types";
|
|
30
|
+
import EventEmitter from "../../utils/event_emitter";
|
|
31
|
+
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
32
|
+
import queueMicrotask from "../../utils/queue_microtask";
|
|
33
|
+
import SortedList from "../../utils/sorted_list";
|
|
34
|
+
import TaskCanceller from "../../utils/task_canceller";
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* Observes what's being played and take care of media events relating to time
|