rx-player 4.5.0-dev.2026033100 → 4.5.0-dev.2026041501
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 +22 -5
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/compat/can_patch_out_pssh.d.ts +42 -0
- package/dist/commonjs/compat/can_patch_out_pssh.d.ts.map +1 -0
- package/dist/commonjs/compat/can_patch_out_pssh.js +53 -0
- package/dist/commonjs/compat/env_detector.d.ts +2 -0
- package/dist/commonjs/compat/env_detector.d.ts.map +1 -1
- package/dist/commonjs/compat/env_detector.js +5 -0
- package/dist/commonjs/core/adaptive/network_analyzer.d.ts +1 -2
- package/dist/commonjs/core/adaptive/network_analyzer.d.ts.map +1 -1
- package/dist/commonjs/core/adaptive/network_analyzer.js +3 -3
- package/dist/commonjs/core/adaptive/utils/representation_score_calculator.js +2 -2
- package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
- package/dist/commonjs/core/cmcd/cmcd_data_builder.js +9 -3
- package/dist/commonjs/core/entry/content_preparer.d.ts.map +1 -1
- package/dist/commonjs/core/entry/content_preparer.js +5 -7
- package/dist/commonjs/core/entry/core_entry.d.ts.map +1 -1
- package/dist/commonjs/core/entry/core_entry.js +6 -2
- package/dist/commonjs/core/entry/core_text_displayer_interface.js +3 -3
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +12 -0
- package/dist/commonjs/core/fetchers/thumbnails/thumbnail_fetcher.js +1 -1
- package/dist/commonjs/core/fetchers/utils/schedule_request.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/utils/schedule_request.js +4 -3
- package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts +0 -2
- package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts.map +1 -1
- package/dist/commonjs/core/segment_sinks/garbage_collector.js +0 -3
- package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts +1 -1
- package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -1
- package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.js +2 -2
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
- package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +6 -6
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +37 -40
- package/dist/commonjs/default_config.d.ts +5 -0
- package/dist/commonjs/default_config.d.ts.map +1 -1
- package/dist/commonjs/default_config.js +5 -0
- package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +23 -16
- package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/content_decryptor.js +4 -1
- package/dist/commonjs/main_thread/decrypt/session_events_listener.js +1 -1
- package/dist/commonjs/main_thread/decrypt/set_server_certificate.d.ts +2 -0
- package/dist/commonjs/main_thread/decrypt/set_server_certificate.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/set_server_certificate.js +4 -0
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +0 -8
- 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 +58 -50
- package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +35 -5
- package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +60 -19
- package/dist/commonjs/main_thread/render_thumbnail.d.ts.map +1 -1
- package/dist/commonjs/main_thread/render_thumbnail.js +4 -0
- package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
- package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.js +1 -0
- package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +1 -1
- package/dist/commonjs/main_thread/tracks_store/tracks_store.js +1 -1
- package/dist/{es2017/parsers/containers/isobmff/take_pssh_out.d.ts → commonjs/parsers/containers/isobmff/extract_pssh.d.ts} +6 -4
- package/dist/commonjs/parsers/containers/isobmff/extract_pssh.d.ts.map +1 -0
- package/dist/commonjs/parsers/containers/isobmff/{take_pssh_out.js → extract_pssh.js} +22 -17
- package/dist/commonjs/parsers/containers/isobmff/index.d.ts +2 -2
- package/dist/commonjs/parsers/containers/isobmff/index.d.ts.map +1 -1
- package/dist/commonjs/parsers/containers/isobmff/index.js +4 -4
- package/dist/commonjs/playback_observer/core_playback_observer.d.ts +4 -4
- package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +1 -1
- package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +1 -2
- package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
- package/dist/commonjs/transports/dash/segment_parser.js +1 -1
- package/dist/commonjs/transports/local/segment_parser.js +1 -1
- package/dist/commonjs/utils/test-utils.d.ts +30 -0
- package/dist/commonjs/utils/test-utils.d.ts.map +1 -0
- package/dist/commonjs/utils/test-utils.js +79 -0
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/compat/can_patch_out_pssh.d.ts +42 -0
- package/dist/es2017/compat/can_patch_out_pssh.d.ts.map +1 -0
- package/dist/es2017/compat/can_patch_out_pssh.js +50 -0
- package/dist/es2017/compat/env_detector.d.ts +2 -0
- package/dist/es2017/compat/env_detector.d.ts.map +1 -1
- package/dist/es2017/compat/env_detector.js +5 -0
- package/dist/es2017/core/adaptive/network_analyzer.d.ts +1 -2
- package/dist/es2017/core/adaptive/network_analyzer.d.ts.map +1 -1
- package/dist/es2017/core/adaptive/network_analyzer.js +3 -3
- package/dist/es2017/core/adaptive/utils/representation_score_calculator.js +2 -2
- package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
- package/dist/es2017/core/cmcd/cmcd_data_builder.js +9 -3
- package/dist/es2017/core/entry/content_preparer.d.ts.map +1 -1
- package/dist/es2017/core/entry/content_preparer.js +3 -5
- package/dist/es2017/core/entry/core_entry.d.ts.map +1 -1
- package/dist/es2017/core/entry/core_entry.js +6 -2
- package/dist/es2017/core/entry/core_text_displayer_interface.js +3 -3
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +12 -0
- package/dist/es2017/core/fetchers/thumbnails/thumbnail_fetcher.js +1 -1
- package/dist/es2017/core/fetchers/utils/schedule_request.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/utils/schedule_request.js +2 -3
- package/dist/es2017/core/segment_sinks/garbage_collector.d.ts +0 -2
- package/dist/es2017/core/segment_sinks/garbage_collector.d.ts.map +1 -1
- package/dist/es2017/core/segment_sinks/garbage_collector.js +0 -3
- package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts +1 -1
- package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -1
- package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.js +2 -2
- package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
- package/dist/es2017/core/stream/adaptation/adaptation_stream.js +6 -6
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
- package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +40 -39
- package/dist/es2017/default_config.d.ts +5 -0
- package/dist/es2017/default_config.d.ts.map +1 -1
- package/dist/es2017/default_config.js +5 -0
- package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.js +20 -13
- package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/content_decryptor.js +4 -1
- package/dist/es2017/main_thread/decrypt/session_events_listener.js +1 -1
- package/dist/es2017/main_thread/decrypt/set_server_certificate.d.ts +2 -0
- package/dist/es2017/main_thread/decrypt/set_server_certificate.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/set_server_certificate.js +4 -0
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +0 -8
- 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 +58 -50
- package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +35 -5
- package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +60 -19
- package/dist/es2017/main_thread/render_thumbnail.d.ts.map +1 -1
- package/dist/es2017/main_thread/render_thumbnail.js +4 -0
- package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
- package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.js +1 -0
- package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +1 -1
- package/dist/es2017/main_thread/tracks_store/tracks_store.js +1 -1
- package/dist/{commonjs/parsers/containers/isobmff/take_pssh_out.d.ts → es2017/parsers/containers/isobmff/extract_pssh.d.ts} +6 -4
- package/dist/es2017/parsers/containers/isobmff/extract_pssh.d.ts.map +1 -0
- package/dist/es2017/parsers/containers/isobmff/{take_pssh_out.js → extract_pssh.js} +21 -16
- package/dist/es2017/parsers/containers/isobmff/index.d.ts +2 -2
- package/dist/es2017/parsers/containers/isobmff/index.d.ts.map +1 -1
- package/dist/es2017/parsers/containers/isobmff/index.js +2 -2
- package/dist/es2017/playback_observer/core_playback_observer.d.ts +4 -4
- package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +1 -1
- package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +1 -2
- package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
- package/dist/es2017/transports/dash/segment_parser.js +2 -2
- package/dist/es2017/transports/local/segment_parser.js +2 -2
- package/dist/es2017/utils/test-utils.d.ts +30 -0
- package/dist/es2017/utils/test-utils.d.ts.map +1 -0
- package/dist/es2017/utils/test-utils.js +36 -0
- package/dist/mpd-parser.wasm +0 -0
- package/dist/worker.js +6 -6
- package/package.json +4 -2
- package/src/README.md +7 -7
- package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/compat/__tests__/can_patch_out_pssh.test.ts +40 -0
- package/src/compat/can_patch_out_pssh.ts +53 -0
- package/src/compat/env_detector.ts +4 -0
- package/src/core/README.md +1 -1
- package/src/core/adaptive/README.md +3 -3
- package/src/core/adaptive/__tests__/adaptive_representation_selector.test.ts +181 -110
- package/src/core/adaptive/__tests__/guess_based_chooser.test.ts +229 -123
- package/src/core/adaptive/__tests__/mocks.ts +100 -0
- package/src/core/adaptive/__tests__/network_analyzer.test.ts +152 -59
- package/src/core/adaptive/network_analyzer.ts +4 -4
- package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +11 -19
- package/src/core/adaptive/utils/__tests__/filter_by_resolution.test.ts +12 -12
- package/src/core/adaptive/utils/__tests__/last_estimate_storage.test.ts +25 -12
- package/src/core/adaptive/utils/__tests__/pending_requests_store.test.ts +13 -9
- package/src/core/adaptive/utils/__tests__/representation_score_calculator.test.ts +11 -11
- package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +13 -23
- package/src/core/adaptive/utils/representation_score_calculator.ts +2 -2
- package/src/core/cmcd/__tests__/cmcd_data_builder.test.ts +60 -15
- package/src/core/cmcd/cmcd_data_builder.ts +9 -3
- package/src/core/entry/README.md +2 -2
- package/src/core/entry/__tests__/core_text_displayer_interface.test.ts +20 -0
- package/src/core/entry/content_preparer.ts +2 -5
- package/src/core/entry/core_entry.ts +6 -2
- package/src/core/entry/core_text_displayer_interface.ts +3 -3
- package/src/core/fetchers/manifest/__tests__/manifest_fetcher.test.ts +52 -3
- package/src/core/fetchers/manifest/manifest_fetcher.ts +12 -0
- package/src/core/fetchers/thumbnails/__tests__/thumbnail_fetcher.test.ts +70 -0
- package/src/core/fetchers/thumbnails/thumbnail_fetcher.ts +1 -1
- package/src/core/fetchers/utils/schedule_request.ts +5 -3
- package/src/core/segment_sinks/__tests__/garbage_collector.test.ts +434 -0
- package/src/core/segment_sinks/__tests__/mocks.ts +49 -0
- package/src/core/segment_sinks/garbage_collector.ts +0 -3
- package/src/core/segment_sinks/implementations/text/__tests__/text_segment_sink.test.ts +177 -0
- package/src/core/segment_sinks/implementations/text/text_segment_sink.ts +2 -2
- package/src/core/segment_sinks/inventory/__tests__/buffered_history.test.ts +215 -0
- package/src/core/segment_sinks/inventory/__tests__/segment_inventory.test.ts +448 -0
- package/src/core/stream/adaptation/__tests__/adaptation_stream.test.ts +973 -0
- package/src/core/stream/adaptation/__tests__/get_representations_switch_strategy.test.ts +283 -374
- package/src/core/stream/adaptation/adaptation_stream.ts +6 -8
- package/src/core/stream/orchestrator/README.md +4 -4
- package/src/core/stream/orchestrator/__tests__/stream_orchestrator.test.ts +707 -0
- package/src/core/stream/orchestrator/stream_orchestrator.ts +41 -46
- package/src/core/stream/period/utils/__tests__/get_adaptation_switch_strategy.test.ts +290 -220
- package/src/core/stream/representation/__tests__/encryption_data_notifier.test.ts +93 -63
- package/src/core/stream/representation/utils/__tests__/append_segment_to_buffer.test.ts +106 -63
- package/src/core/stream/representation/utils/__tests__/check_for_discontinuity.test.ts +179 -204
- package/src/core/stream/representation/utils/__tests__/get_segment_priority.test.ts +7 -7
- package/src/core/stream/representation/utils/__tests__/push_init_segment.test.ts +103 -60
- package/src/core/stream/representation/utils/__tests__/push_media_segment.test.ts +231 -165
- package/src/default_config.ts +6 -0
- package/src/experimental/README.md +1 -1
- package/src/features/README.md +3 -3
- package/src/main_thread/api/README.md +6 -7
- package/src/main_thread/api/public_api.ts +16 -10
- package/src/main_thread/decrypt/README.md +4 -4
- package/src/main_thread/decrypt/__tests__/__global__/content_decryptor.test.ts +135 -0
- package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +70 -0
- package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +44 -0
- package/src/main_thread/decrypt/__tests__/__global__/utils.ts +2 -2
- package/src/main_thread/decrypt/content_decryptor.ts +6 -1
- package/src/main_thread/decrypt/session_events_listener.ts +1 -1
- package/src/main_thread/decrypt/set_server_certificate.ts +5 -0
- package/src/main_thread/init/media_source_content_initializer.ts +69 -55
- package/src/main_thread/init/utils/__tests__/stream_events_emitter.test.ts +175 -0
- package/src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts +90 -26
- package/src/main_thread/render_thumbnail.ts +4 -0
- package/src/main_thread/tracks_store/README.md +12 -0
- package/src/main_thread/tracks_store/__tests__/media_element_tracks_store.test.ts +25 -18
- package/src/main_thread/tracks_store/media_element_tracks_store.ts +1 -0
- package/src/main_thread/tracks_store/tracks_store.ts +1 -1
- package/src/manifest/classes/__tests__/mocks.ts +202 -0
- package/src/parsers/containers/isobmff/__tests__/extract_pssh.test.ts +199 -0
- package/src/parsers/containers/isobmff/{take_pssh_out.ts → extract_pssh.ts} +21 -17
- package/src/parsers/containers/isobmff/index.ts +2 -2
- package/src/parsers/manifest/dash/wasm-parser/README.md +9 -9
- package/src/playback_observer/__tests__/mocks.ts +152 -0
- package/src/playback_observer/core_playback_observer.ts +4 -4
- package/src/playback_observer/media_element_playback_observer.ts +1 -1
- package/src/tools/README.md +2 -2
- package/src/transports/README.md +5 -5
- package/src/transports/dash/segment_parser.ts +2 -2
- package/src/transports/local/segment_parser.ts +2 -2
- package/src/transports/metaplaylist/README.md +4 -4
- package/src/utils/README.md +3 -3
- package/src/utils/test-utils.ts +50 -0
- package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts +0 -11
- package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
- package/dist/commonjs/core/entry/synchronize_sinks_on_observation.js +0 -20
- package/dist/commonjs/parsers/containers/isobmff/take_pssh_out.d.ts.map +0 -1
- package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts +0 -11
- package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
- package/dist/es2017/core/entry/synchronize_sinks_on_observation.js +0 -17
- package/dist/es2017/parsers/containers/isobmff/take_pssh_out.d.ts.map +0 -1
- package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -117
- package/src/core/entry/synchronize_sinks_on_observation.ts +0 -22
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When talking about `ISOBMFF`/.mp4 metadata, the `pssh` is a box (a subpart of
|
|
3
|
+
* that file) containing protection-related metadata that is then used to
|
|
4
|
+
* interact with EME APIs.
|
|
5
|
+
*
|
|
6
|
+
* The idea in EME scenarios is that the EME player (here the RxPlayer) will
|
|
7
|
+
* take that data and communicate it to the browser's CDM (Content Decryption
|
|
8
|
+
* Module) through an EME API (generally `generateRequest`).
|
|
9
|
+
*
|
|
10
|
+
* There is a mechanism in place in browsers, presumably to facilitate that work
|
|
11
|
+
* which is that when the browser sees a `pssh` box in media data (either linked
|
|
12
|
+
* directly through a media element's `src` attribute or one communicated
|
|
13
|
+
* through MSE API) it can send an `encrypted` event so a JS player can then
|
|
14
|
+
* communicate it to the right EME API.
|
|
15
|
+
*
|
|
16
|
+
* However, in an MSE/EME player, we often are distrustful of letting the browser
|
|
17
|
+
* do work that can without issue be already done on our side (due to being
|
|
18
|
+
* burned too much time on some weird environment, where the spec isn't respected
|
|
19
|
+
* to the letter). So instead historically in MSE scenarios, the RxPlayer read the
|
|
20
|
+
* `pssh` itself, and then "patched it out" (replaced it with a `free` box,
|
|
21
|
+
* effectively a no-op for ISOBMFF metadata) from the segment before giving it to
|
|
22
|
+
* the browser's buffer so that we skip that now unnecessary browser round-trip
|
|
23
|
+
* (the `encrypted` event) and supplementary API surface that could be broken.
|
|
24
|
+
*
|
|
25
|
+
* Several years pass without issue, but in early 2026, we found out that one
|
|
26
|
+
* device, a "Streama" STB from DStv (owned by Multichoice) refuse to bufferise
|
|
27
|
+
* segments which had this "optimization" performed.
|
|
28
|
+
* We have no idea why, from our POV it's an issue on the browser integration side.
|
|
29
|
+
* They don't disagree but they cannot update that part of their device easily.
|
|
30
|
+
*
|
|
31
|
+
* So we decided to fix it player-side. When discussing about it, we hesitated
|
|
32
|
+
* between removing that "optimization" altogether or only for the specific device
|
|
33
|
+
* where we identified the issue. I chose (though far from everyone agreed!) the
|
|
34
|
+
* second solution (only for problematic device) because I feared changing
|
|
35
|
+
* behavior too much compared to most of our previous versions could break
|
|
36
|
+
* other devices, even if we saw that some other players such as the
|
|
37
|
+
* shaka-player did not do that same optimization.
|
|
38
|
+
*
|
|
39
|
+
* @returns {boolean}
|
|
40
|
+
*/
|
|
41
|
+
export default function canPatchOutPsshBox(): boolean;
|
|
42
|
+
//# sourceMappingURL=can_patch_out_pssh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can_patch_out_pssh.d.ts","sourceRoot":"","sources":["../../../src/compat/can_patch_out_pssh.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,IAAI,OAAO,CASpD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import config from "../config";
|
|
2
|
+
import EnvDetector from "./env_detector";
|
|
3
|
+
/**
|
|
4
|
+
* When talking about `ISOBMFF`/.mp4 metadata, the `pssh` is a box (a subpart of
|
|
5
|
+
* that file) containing protection-related metadata that is then used to
|
|
6
|
+
* interact with EME APIs.
|
|
7
|
+
*
|
|
8
|
+
* The idea in EME scenarios is that the EME player (here the RxPlayer) will
|
|
9
|
+
* take that data and communicate it to the browser's CDM (Content Decryption
|
|
10
|
+
* Module) through an EME API (generally `generateRequest`).
|
|
11
|
+
*
|
|
12
|
+
* There is a mechanism in place in browsers, presumably to facilitate that work
|
|
13
|
+
* which is that when the browser sees a `pssh` box in media data (either linked
|
|
14
|
+
* directly through a media element's `src` attribute or one communicated
|
|
15
|
+
* through MSE API) it can send an `encrypted` event so a JS player can then
|
|
16
|
+
* communicate it to the right EME API.
|
|
17
|
+
*
|
|
18
|
+
* However, in an MSE/EME player, we often are distrustful of letting the browser
|
|
19
|
+
* do work that can without issue be already done on our side (due to being
|
|
20
|
+
* burned too much time on some weird environment, where the spec isn't respected
|
|
21
|
+
* to the letter). So instead historically in MSE scenarios, the RxPlayer read the
|
|
22
|
+
* `pssh` itself, and then "patched it out" (replaced it with a `free` box,
|
|
23
|
+
* effectively a no-op for ISOBMFF metadata) from the segment before giving it to
|
|
24
|
+
* the browser's buffer so that we skip that now unnecessary browser round-trip
|
|
25
|
+
* (the `encrypted` event) and supplementary API surface that could be broken.
|
|
26
|
+
*
|
|
27
|
+
* Several years pass without issue, but in early 2026, we found out that one
|
|
28
|
+
* device, a "Streama" STB from DStv (owned by Multichoice) refuse to bufferise
|
|
29
|
+
* segments which had this "optimization" performed.
|
|
30
|
+
* We have no idea why, from our POV it's an issue on the browser integration side.
|
|
31
|
+
* They don't disagree but they cannot update that part of their device easily.
|
|
32
|
+
*
|
|
33
|
+
* So we decided to fix it player-side. When discussing about it, we hesitated
|
|
34
|
+
* between removing that "optimization" altogether or only for the specific device
|
|
35
|
+
* where we identified the issue. I chose (though far from everyone agreed!) the
|
|
36
|
+
* second solution (only for problematic device) because I feared changing
|
|
37
|
+
* behavior too much compared to most of our previous versions could break
|
|
38
|
+
* other devices, even if we saw that some other players such as the
|
|
39
|
+
* shaka-player did not do that same optimization.
|
|
40
|
+
*
|
|
41
|
+
* @returns {boolean}
|
|
42
|
+
*/
|
|
43
|
+
export default function canPatchOutPsshBox() {
|
|
44
|
+
const { PREVENT_PSSH_PATCHING } = config.getCurrent();
|
|
45
|
+
if (PREVENT_PSSH_PATCHING ||
|
|
46
|
+
EnvDetector.device === EnvDetector.DEVICES.StreamaMdp1001S) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
@@ -57,6 +57,8 @@ declare const DEVICES: {
|
|
|
57
57
|
readonly Xbox: 109;
|
|
58
58
|
/** Another device that does not match with the others defined here. */
|
|
59
59
|
readonly Other: 110;
|
|
60
|
+
/** DSTtv's Streama STB MPD1001S, which is known to have some quirks. */
|
|
61
|
+
readonly StreamaMdp1001S: 111;
|
|
60
62
|
};
|
|
61
63
|
/** Interface giving information on the current environment where the RxPlayer runs. */
|
|
62
64
|
export interface IEnvDetector {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env_detector.d.ts","sourceRoot":"","sources":["../../../src/compat/env_detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH,iCAAiC;AACjC,QAAA,MAAM,QAAQ;IACZ,0DAA0D;;IAE1D,+CAA+C;;IAE/C,yCAAyC;;IAEzC;;;OAGG;;IAEH,4DAA4D;;IAE5D,8CAA8C;;IAE9C,wEAAwE;;CAEhE,CAAC;AAEX,gCAAgC;AAChC,QAAA,MAAM,OAAO;IAKX,kDAAkD;;IAElD,0BAA0B;;IAE1B,+BAA+B;;IAE/B,sCAAsC;;IAEtC,sCAAsC;;IAEtC,wDAAwD;;IAExD,gDAAgD;;IAEhD,gDAAgD;;IAEhD,kDAAkD;;IAElD,oCAAoC;;IAEpC,uEAAuE;;
|
|
1
|
+
{"version":3,"file":"env_detector.d.ts","sourceRoot":"","sources":["../../../src/compat/env_detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH,iCAAiC;AACjC,QAAA,MAAM,QAAQ;IACZ,0DAA0D;;IAE1D,+CAA+C;;IAE/C,yCAAyC;;IAEzC;;;OAGG;;IAEH,4DAA4D;;IAE5D,8CAA8C;;IAE9C,wEAAwE;;CAEhE,CAAC;AAEX,gCAAgC;AAChC,QAAA,MAAM,OAAO;IAKX,kDAAkD;;IAElD,0BAA0B;;IAE1B,+BAA+B;;IAE/B,sCAAsC;;IAEtC,sCAAsC;;IAEtC,wDAAwD;;IAExD,gDAAgD;;IAEhD,gDAAgD;;IAEhD,kDAAkD;;IAElD,oCAAoC;;IAEpC,uEAAuE;;IAEvE,wEAAwE;;CAEhE,CAAC;AAEX,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,mEAAmE;IACnE,OAAO,EAAE,OAAO,OAAO,CAAC;IAExB,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;IAE3D;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;IAExD;;oEAEgE;IAChE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAaD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,EACjD,MAAM,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,EAC9C,gBAAgB,GAAE,OAAe,GAChC,MAAM,IAAI,CAKZ;AAED;;;;;GAKG;AACH,iBAAS,gBAAgB,IAAI,IAAI,CA4FhC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;wBACE,YAAY;AAA1C,wBAA2C"}
|
|
@@ -62,6 +62,8 @@ const DEVICES = {
|
|
|
62
62
|
Xbox: 109,
|
|
63
63
|
/** Another device that does not match with the others defined here. */
|
|
64
64
|
Other: 110,
|
|
65
|
+
/** DSTtv's Streama STB MPD1001S, which is known to have some quirks. */
|
|
66
|
+
StreamaMdp1001S: 111,
|
|
65
67
|
};
|
|
66
68
|
/** Object giving information on the current environment where the RxPlayer runs. */
|
|
67
69
|
const EnvDetector = {
|
|
@@ -148,6 +150,9 @@ function resetEnvironment() {
|
|
|
148
150
|
else if (navigator.userAgent.indexOf("PlayStation 5") !== -1) {
|
|
149
151
|
EnvDetector.device = DEVICES.PlayStation5;
|
|
150
152
|
}
|
|
153
|
+
else if (navigator.userAgent.indexOf("DStv Streama, MDMP1001S") !== -1) {
|
|
154
|
+
EnvDetector.device = DEVICES.StreamaMdp1001S;
|
|
155
|
+
}
|
|
151
156
|
else if (/Tizen/.test(navigator.userAgent)) {
|
|
152
157
|
EnvDetector.device = DEVICES.Tizen;
|
|
153
158
|
// Inspired form: http://webostv.developer.lge.com/discover/specifications/web-engine/
|
|
@@ -18,7 +18,7 @@ import type { IRepresentationEstimatorPlaybackObservation } from "./adaptive_rep
|
|
|
18
18
|
import type BandwidthEstimator from "./utils/bandwidth_estimator";
|
|
19
19
|
import type { IRequestInfo } from "./utils/pending_requests_store";
|
|
20
20
|
/** Object describing the current playback conditions. */
|
|
21
|
-
type IPlaybackConditionsInfo = Pick<IRepresentationEstimatorPlaybackObservation, "bufferGap" | "position" | "speed" | "duration">;
|
|
21
|
+
export type IPlaybackConditionsInfo = Pick<IRepresentationEstimatorPlaybackObservation, "bufferGap" | "position" | "speed" | "duration">;
|
|
22
22
|
/**
|
|
23
23
|
* Estimate the __VERY__ recent bandwidth based on a single unfinished request.
|
|
24
24
|
* Useful when the current bandwidth seemed to have fallen quickly.
|
|
@@ -70,5 +70,4 @@ export default class NetworkAnalyzer {
|
|
|
70
70
|
*/
|
|
71
71
|
isUrgent(bitrate: number, currentRepresentation: IRepresentation | null, currentRequests: IRequestInfo[], playbackInfo: IPlaybackConditionsInfo): boolean;
|
|
72
72
|
}
|
|
73
|
-
export {};
|
|
74
73
|
//# sourceMappingURL=network_analyzer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network_analyzer.d.ts","sourceRoot":"","sources":["../../../../src/core/adaptive/network_analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,KAAK,kBAAkB,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,yDAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"network_analyzer.d.ts","sourceRoot":"","sources":["../../../../src/core/adaptive/network_analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,KAAK,kBAAkB,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,yDAAyD;AACzD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,2CAA2C,EAC3C,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAChD,CAAC;AAqDF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAkBlF;AA4JD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAKb;gBAEU,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO;IA2B3D;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CACzB,YAAY,EAAE,uBAAuB,EACrC,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,eAAe,GAAG,IAAI,EAC7C,eAAe,EAAE,YAAY,EAAE,EAC/B,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACvC;QAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IAsFpE;;;;;;;;;OASG;IACI,QAAQ,CACb,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,eAAe,GAAG,IAAI,EAC7C,eAAe,EAAE,YAAY,EAAE,EAC/B,YAAY,EAAE,uBAAuB,GACpC,OAAO;CAYX"}
|
|
@@ -130,9 +130,9 @@ function estimateStarvationModeBitrate(pendingRequests, playbackInfo, currentRep
|
|
|
130
130
|
}
|
|
131
131
|
const concernedRequest = concernedRequests[0];
|
|
132
132
|
const now = getMonotonicTimeStamp();
|
|
133
|
-
let minimumRequestTime = concernedRequest.content.segment.duration *
|
|
134
|
-
minimumRequestTime = Math.
|
|
135
|
-
minimumRequestTime = Math.
|
|
133
|
+
let minimumRequestTime = concernedRequest.content.segment.duration * 1500;
|
|
134
|
+
minimumRequestTime = Math.max(minimumRequestTime, 3000);
|
|
135
|
+
minimumRequestTime = Math.min(minimumRequestTime, 12000);
|
|
136
136
|
if (now - concernedRequest.requestTimestamp < minimumRequestTime) {
|
|
137
137
|
return undefined;
|
|
138
138
|
}
|
|
@@ -74,7 +74,7 @@ export default class RepresentationScoreCalculator {
|
|
|
74
74
|
representation,
|
|
75
75
|
ewma: currentEWMA,
|
|
76
76
|
loadedDuration: segmentDuration,
|
|
77
|
-
loadedSegments:
|
|
77
|
+
loadedSegments: 1,
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
if (currentEWMA.getEstimate() > 1 &&
|
|
@@ -98,7 +98,7 @@ export default class RepresentationScoreCalculator {
|
|
|
98
98
|
}
|
|
99
99
|
const { ewma, loadedSegments, loadedDuration } = this._currentRepresentationData;
|
|
100
100
|
const estimate = ewma.getEstimate();
|
|
101
|
-
const confidenceLevel = loadedSegments >=
|
|
101
|
+
const confidenceLevel = loadedSegments >= 6 && loadedDuration >= 10
|
|
102
102
|
? 1 /* ScoreConfidenceLevel.HIGH */
|
|
103
103
|
: 0 /* ScoreConfidenceLevel.LOW */;
|
|
104
104
|
return { score: estimate, confidenceLevel };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmcd_data_builder.d.ts","sourceRoot":"","sources":["../../../../src/core/cmcd/cmcd_data_builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,eAAe,EACf,QAAQ,EACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAgBjD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,EAAE,SAAS,CAAC;IACpB,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,UAAU,EAAE,WAAW,CAAC;IACxB,4DAA4D;IAC5D,cAAc,EAAE,eAAe,CAAC;IAChC,qDAAqD;IACrD,OAAO,EAAE,QAAQ,CAAC;IAClB;;;;;;;;;;OAUG;IACH,WAAW,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C;;;OAGG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,iBAAiB,CAAwE;IACjG,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;;OAIG;gBACS,OAAO,EAAE,YAAY;IAajC;;;;;;;;;OASG;IACI,uBAAuB,CAC5B,gBAAgB,EAAE,yBAAyB,CAAC,mCAAmC,CAAC,GAC/E,IAAI;IAcP;;;OAGG;IACI,sBAAsB,IAAI,IAAI;IAMrC;;;;;;OAMG;IACI,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS;IAI7E;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"cmcd_data_builder.d.ts","sourceRoot":"","sources":["../../../../src/core/cmcd/cmcd_data_builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,eAAe,EACf,QAAQ,EACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAgBjD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,EAAE,SAAS,CAAC;IACpB,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,UAAU,EAAE,WAAW,CAAC;IACxB,4DAA4D;IAC5D,cAAc,EAAE,eAAe,CAAC;IAChC,qDAAqD;IACrD,OAAO,EAAE,QAAQ,CAAC;IAClB;;;;;;;;;;OAUG;IACH,WAAW,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C;;;OAGG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,iBAAiB,CAAwE;IACjG,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;;OAIG;gBACS,OAAO,EAAE,YAAY;IAajC;;;;;;;;;OASG;IACI,uBAAuB,CAC5B,gBAAgB,EAAE,yBAAyB,CAAC,mCAAmC,CAAC,GAC/E,IAAI;IAcP;;;OAGG;IACI,sBAAsB,IAAI,IAAI;IAMrC;;;;;;OAMG;IACI,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS;IAI7E;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;;OAKG;IACI,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY;IAoBlE;;;;;OAKG;IACI,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAyH5E;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAsHxB"}
|
|
@@ -99,7 +99,10 @@ export default class CmcdDataBuilder {
|
|
|
99
99
|
props.sid = this._sessionId;
|
|
100
100
|
const lastObservation = (_a = this._playbackObserver) === null || _a === void 0 ? void 0 : _a.getReference().getValue();
|
|
101
101
|
props.pr =
|
|
102
|
-
lastObservation === undefined ||
|
|
102
|
+
lastObservation === undefined ||
|
|
103
|
+
!isFinite(lastObservation.speed) ||
|
|
104
|
+
lastObservation.speed < 0 ||
|
|
105
|
+
lastObservation.speed === 1
|
|
103
106
|
? undefined
|
|
104
107
|
: lastObservation.speed;
|
|
105
108
|
if (lastObservation !== undefined) {
|
|
@@ -196,7 +199,10 @@ export default class CmcdDataBuilder {
|
|
|
196
199
|
}
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
|
-
const precizeDeadlineMs = precizeBufferLengthMs === undefined ||
|
|
202
|
+
const precizeDeadlineMs = precizeBufferLengthMs === undefined ||
|
|
203
|
+
lastObservation === undefined ||
|
|
204
|
+
!isFinite(lastObservation.speed) ||
|
|
205
|
+
lastObservation.speed <= 0
|
|
200
206
|
? undefined
|
|
201
207
|
: precizeBufferLengthMs / lastObservation.speed;
|
|
202
208
|
props.dl =
|
|
@@ -270,7 +276,7 @@ export default class CmcdDataBuilder {
|
|
|
270
276
|
const addStringProperty = (prop, headerName) => {
|
|
271
277
|
const val = props[prop];
|
|
272
278
|
if (val !== undefined) {
|
|
273
|
-
const formatted = `"${val.replace(
|
|
279
|
+
const formatted = `"${val.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
|
|
274
280
|
const toAdd = `${prop}=${formatted},`;
|
|
275
281
|
addPayload(toAdd, headerName);
|
|
276
282
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content_preparer.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/content_preparer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAOvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AACvG,OAAO,eAAe,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,iBAAiB,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAwC,YAAY,EAAE,MAAM,UAAU,CAAC;AAEnF,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAA8B;IACrD;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAgB;IACzC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B,CAAgB;IAEpD,uBAAuB;IACvB,OAAO,CAAC,SAAS,CAAU;IAE3B;;;;;;;;OAQG;gBACS,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE;IAQ/C;;;;;;;;;;;;;OAaG;IACI,oBAAoB,CACzB,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EACxE,OAAO,EAAE,0BAA0B;IACnC,6DAA6D;IAC7D,UAAU,EAAE,kCAAkC,EAC9C,WAAW,EAAE,YAAY,GACxB,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"content_preparer.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/content_preparer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAOvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AACvG,OAAO,eAAe,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,iBAAiB,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAwC,YAAY,EAAE,MAAM,UAAU,CAAC;AAEnF,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAA8B;IACrD;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAgB;IACzC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B,CAAgB;IAEpD,uBAAuB;IACvB,OAAO,CAAC,SAAS,CAAU;IAE3B;;;;;;;;OAQG;gBACS,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE;IAQ/C;;;;;;;;;;;;;OAaG;IACI,oBAAoB,CACzB,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EACxE,OAAO,EAAE,0BAA0B;IACnC,6DAA6D;IAC7D,UAAU,EAAE,kCAAkC,EAC9C,WAAW,EAAE,YAAY,GACxB,OAAO,CAAC,SAAS,CAAC;IAqLrB;;;;;OAKG;IACI,iBAAiB,IAAI,oBAAoB,GAAG,IAAI;IAIvD;;;;;;OAMG;IACI,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAIxE;;;;;;;;OAQG;IACI,iBAAiB,CACtB,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,GACvE,OAAO,CAAC,IAAI,CAAC;IA8ChB;;;;;;OAMG;IACI,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;CAIxD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC;;;;OAIG;IACH,6BAA6B,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,WAAW,EAAE,qBAAqB,CAAC;IACnC,0DAA0D;IAC1D,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAC;IAC/B;;;OAGG;IACH,uBAAuB,EAAE,wBAAwB,CAAC;IAClD;;;OAGG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,kEAAkE;IAClE,cAAc,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAClD;;;OAGG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,uCAAuC;IACvC,kBAAkB,EAAE,iBAAiB,CAAC;IACtC;;;OAGG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -149,11 +149,6 @@ export default class ContentPreparer {
|
|
|
149
149
|
checkIfReadyAndValidate();
|
|
150
150
|
}, currentMediaSourceCanceller.signal);
|
|
151
151
|
manifestFetcher.addEventListener("error", (err) => {
|
|
152
|
-
sendMessage({
|
|
153
|
-
type: "error" /* CoreMessageType.Error */,
|
|
154
|
-
contentId,
|
|
155
|
-
value: formatErrorForSender(err),
|
|
156
|
-
});
|
|
157
152
|
rej(err);
|
|
158
153
|
}, contentCanceller.signal);
|
|
159
154
|
manifestFetcher.start();
|
|
@@ -210,12 +205,15 @@ export default class ContentPreparer {
|
|
|
210
205
|
* @returns {Promise}
|
|
211
206
|
*/
|
|
212
207
|
reloadMediaSource(sendMessage) {
|
|
208
|
+
var _a;
|
|
213
209
|
this._currentMediaSourceCanceller.cancel("ContentPreparer MediaSource reload");
|
|
214
210
|
if (this._currentContent === null) {
|
|
215
211
|
return Promise.reject(new Error("CP: No content anymore"));
|
|
216
212
|
}
|
|
217
213
|
this._currentContent.trackChoiceSetter.reset();
|
|
214
|
+
(_a = this._currentContent.coreTextSender) === null || _a === void 0 ? void 0 : _a.stop("ContentPreparer MediaSource reload");
|
|
218
215
|
this._currentMediaSourceCanceller = new TaskCanceller("ContentPreparer MediaSource");
|
|
216
|
+
this._currentMediaSourceCanceller.linkToSignal(this._contentCanceller.signal);
|
|
219
217
|
const [mediaSourceInterface, segmentSinksStore, coreTextSender] = createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, this._currentContent.contentId, {
|
|
220
218
|
useMseInWorker: this._currentContent.useMseInWorker,
|
|
221
219
|
hasVideo: this._hasVideo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core_entry.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/core_entry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,kBAAkB,EAGnB,MAAM,yBAAyB,CAAC;AAcjC,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAQpD,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAChB,MAAM,UAAU,CAAC;AAOlB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,MAAM,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,KAAK,IAAI,CAAC;AAEnF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,kBAAkB,EAAE,CAAC,EAAE,EAAE,wBAAwB,KAAK,IAAI,EAC1D,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EACxE,WAAW,EAAE,YAAY,GACxB,IAAI,CA2ZN;
|
|
1
|
+
{"version":3,"file":"core_entry.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/core_entry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,kBAAkB,EAGnB,MAAM,yBAAyB,CAAC;AAcjC,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAQpD,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAChB,MAAM,UAAU,CAAC;AAOlB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,MAAM,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,KAAK,IAAI,CAAC;AAEnF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,kBAAkB,EAAE,CAAC,EAAE,EAAE,wBAAwB,KAAK,IAAI,EAC1D,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EACxE,WAAW,EAAE,YAAY,GACxB,IAAI,CA2ZN;AAkwBD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACvD,iFAAiF;IACjF,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,oFAAoF;IACpF,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,oEAAoE;IACpE,kBAAkB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,+DAA+D;IAC/D,iBAAiB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;CAC5C"}
|
|
@@ -907,15 +907,19 @@ function sendThumbnailData(sendMessage, contentPreparer, msg) {
|
|
|
907
907
|
return respondWithError(new Error("Content changed"));
|
|
908
908
|
}
|
|
909
909
|
getThumbnailData(preparedContent.fetchThumbnailData, preparedContent.manifest, msg.value.periodId, msg.value.thumbnailTrackId, msg.value.time).then((result) => {
|
|
910
|
+
// Multiple thumbnail requests can share the same fetched payload.
|
|
911
|
+
// Transfer a copy here so replying to one request does not detach the
|
|
912
|
+
// ArrayBuffer that still has to be sent to another requester.
|
|
913
|
+
const data = result.data.slice(0);
|
|
910
914
|
sendMessage({
|
|
911
915
|
type: "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */,
|
|
912
916
|
contentId: msg.contentId,
|
|
913
917
|
value: {
|
|
914
918
|
status: "success",
|
|
915
919
|
requestId: msg.value.requestId,
|
|
916
|
-
data: result,
|
|
920
|
+
data: Object.assign(Object.assign({}, result), { data }),
|
|
917
921
|
},
|
|
918
|
-
}, [
|
|
922
|
+
}, [data]);
|
|
919
923
|
}, (err) => {
|
|
920
924
|
return respondWithError(err);
|
|
921
925
|
});
|
|
@@ -21,12 +21,12 @@ export default class CoreTextDisplayerInterface {
|
|
|
21
21
|
*/
|
|
22
22
|
pushTextData(infos) {
|
|
23
23
|
return new Promise((resolve, reject) => {
|
|
24
|
+
this._queues.pushTextData.push({ resolve, reject });
|
|
24
25
|
this._messageSender({
|
|
25
26
|
type: "push-text-data" /* CoreMessageType.PushTextData */,
|
|
26
27
|
contentId: this._contentId,
|
|
27
28
|
value: infos,
|
|
28
29
|
});
|
|
29
|
-
this._queues.pushTextData.push({ resolve, reject });
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
@@ -34,12 +34,12 @@ export default class CoreTextDisplayerInterface {
|
|
|
34
34
|
*/
|
|
35
35
|
remove(start, end) {
|
|
36
36
|
return new Promise((resolve, reject) => {
|
|
37
|
+
this._queues.remove.push({ resolve, reject });
|
|
37
38
|
this._messageSender({
|
|
38
39
|
type: "remove-text-data" /* CoreMessageType.RemoveTextData */,
|
|
39
40
|
contentId: this._contentId,
|
|
40
41
|
value: { start, end },
|
|
41
42
|
});
|
|
42
|
-
this._queues.remove.push({ resolve, reject });
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
@@ -114,7 +114,7 @@ export default class CoreTextDisplayerInterface {
|
|
|
114
114
|
onRemoveError(err) {
|
|
115
115
|
const element = this._queues.remove.shift();
|
|
116
116
|
if (element === undefined) {
|
|
117
|
-
log.error("text", "
|
|
117
|
+
log.error("text", "remove error for inexistant operation");
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
120
|
element.reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest_fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/manifest/manifest_fetcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,KAAK,EACV,gBAAgB,EAEhB,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAIxD,OAAO,KAAK,eAAe,MAAM,YAAY,CAAC;AAK9C;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAC9E;;;;OAIG;IACI,qBAAqB,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAE3E,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAuB;IAC5C,mDAAmD;IACnD,OAAO,CAAC,cAAc,CAAiB;IACvC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAA6B;IAC/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAClC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAU;IAC5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAC;IAC1B,sFAAsF;IACtF,OAAO,CAAC,sBAAsB,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,sBAAsB,CAA4B;IAE1D;;;;;;;;;OASG;gBAED,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,wBAAwB;IAepC;;;;;;;;OAQG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAKzC;;;;;;OAMG;IACI,KAAK,IAAI,IAAI;IAiCpB;;;;;;OAMG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"manifest_fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/manifest/manifest_fetcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,KAAK,EACV,gBAAgB,EAEhB,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAIxD,OAAO,KAAK,eAAe,MAAM,YAAY,CAAC;AAK9C;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAC9E;;;;OAIG;IACI,qBAAqB,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAE3E,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAuB;IAC5C,mDAAmD;IACnD,OAAO,CAAC,cAAc,CAAiB;IACvC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAA6B;IAC/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAClC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAU;IAC5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAC;IAC1B,sFAAsF;IACtF,OAAO,CAAC,sBAAsB,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,sBAAsB,CAA4B;IAE1D;;;;;;;;;OASG;gBAED,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,wBAAwB;IAepC;;;;;;;;OAQG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAKzC;;;;;;OAMG;IACI,KAAK,IAAI,IAAI;IAiCpB;;;;;;OAMG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAiB/E;;;;;;;;;;;OAWG;YACW,cAAc;IAgE5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,KAAK;IAYb;;;;;;;;OAQG;YACW,oBAAoB;IA2FlC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IA8KnC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAoHnC,OAAO,CAAC,aAAa;CAOtB;AAqDD,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,+CAA+C;IAC/C,6BAA6B,EAAE,MAAM,CAAC;IACtC;;;OAGG;IACH,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,aAAa,EAAE,QAAQ,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;OAYG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -108,6 +108,12 @@ export default class ManifestFetcher extends EventEmitter {
|
|
|
108
108
|
*/
|
|
109
109
|
updateContentUrls(urls, refreshNow) {
|
|
110
110
|
var _a;
|
|
111
|
+
// Keep track of the application-provided content URLs.
|
|
112
|
+
this._manifestUrls = urls;
|
|
113
|
+
// Indicate that we want to prioritize for the next refresh.
|
|
114
|
+
// Once a refreshed Manifest has been parsed we still let the Manifest's own
|
|
115
|
+
// URL list drive subsequent refreshes (e.g. if the transport/parser updated
|
|
116
|
+
// it on purpose).
|
|
111
117
|
this._prioritizedContentUrl = (_a = urls === null || urls === void 0 ? void 0 : urls[0]) !== null && _a !== void 0 ? _a : undefined;
|
|
112
118
|
if (refreshNow) {
|
|
113
119
|
this.scheduleManualRefresh({
|
|
@@ -446,11 +452,17 @@ export default class ManifestFetcher extends EventEmitter {
|
|
|
446
452
|
let fullRefresh;
|
|
447
453
|
let refreshURL;
|
|
448
454
|
if (this._prioritizedContentUrl !== null) {
|
|
455
|
+
// `updateContentUrls` explicitly requested that the next refresh uses that
|
|
456
|
+
// URL. This override is one-shot on purpose.
|
|
449
457
|
fullRefresh = true;
|
|
450
458
|
refreshURL = this._prioritizedContentUrl;
|
|
451
459
|
this._prioritizedContentUrl = null;
|
|
452
460
|
}
|
|
453
461
|
else {
|
|
462
|
+
// Outside of that explicit one-shot override, prefer the URLs currently
|
|
463
|
+
// exposed by the Manifest itself. This allows parser/content-level URL
|
|
464
|
+
// updates (e.g. redirects or manifest-provided alternatives) to stay the
|
|
465
|
+
// source of truth after the refresh completed.
|
|
454
466
|
fullRefresh = !enablePartialRefresh || manifestUpdateUrl === undefined;
|
|
455
467
|
refreshURL = fullRefresh ? manifest.getUrls()[0] : manifestUpdateUrl;
|
|
456
468
|
}
|
|
@@ -173,7 +173,7 @@ cdnPrioritizer) {
|
|
|
173
173
|
* @returns {Promise}
|
|
174
174
|
*/
|
|
175
175
|
function callLoaderWithUrl(cdnMetadata) {
|
|
176
|
-
return loadThumbnail(cdnMetadata, thumbnail, pipelineRequestOptions,
|
|
176
|
+
return loadThumbnail(cdnMetadata, thumbnail, pipelineRequestOptions, requestCanceller.signal);
|
|
177
177
|
}
|
|
178
178
|
/**
|
|
179
179
|
* Function called when the function request is retried.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule_request.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/utils/schedule_request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule_request.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/utils/schedule_request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAK9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAC;AAiDrD,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAC3B,cAAc,EAAE,cAAc,GAAG,IAAI,EACrC,cAAc,EAAE,CACd,GAAG,EAAE,YAAY,GAAG,IAAI,EACxB,kBAAkB,EAAE,kBAAkB,KACnC,OAAO,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,CAAC,CAAC,CAkPZ;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,cAAc,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,CAAC,CAAC,CAGZ"}
|
|
@@ -18,7 +18,6 @@ import log from "../../../log";
|
|
|
18
18
|
import cancellableSleep from "../../../utils/cancellable_sleep";
|
|
19
19
|
import getFuzzedDelay from "../../../utils/get_fuzzed_delay";
|
|
20
20
|
import getTimestamp from "../../../utils/monotonic_timestamp";
|
|
21
|
-
import noop from "../../../utils/noop";
|
|
22
21
|
import { RequestError } from "../../../utils/request";
|
|
23
22
|
import TaskCanceller from "../../../utils/task_canceller";
|
|
24
23
|
/**
|
|
@@ -256,7 +255,7 @@ export async function scheduleRequestWithCdns(cdns, cdnPrioritizer, performReque
|
|
|
256
255
|
cdnPrioritizer === null || cdnPrioritizer === void 0 ? void 0 : cdnPrioritizer.addEventListener("priorityChange", () => {
|
|
257
256
|
const updatedPrioritaryCdn = getCdnToRequest();
|
|
258
257
|
if (cancellationSignal.isCancelled()) {
|
|
259
|
-
|
|
258
|
+
return;
|
|
260
259
|
}
|
|
261
260
|
if (updatedPrioritaryCdn === undefined) {
|
|
262
261
|
return cleanAndReject(prevRequestError);
|
|
@@ -266,7 +265,7 @@ export async function scheduleRequestWithCdns(cdns, cdnPrioritizer, performReque
|
|
|
266
265
|
waitPotentialBackoffAndRequest(updatedPrioritaryCdn, prevRequestError).then(cleanAndResolve, cleanAndReject);
|
|
267
266
|
}
|
|
268
267
|
}, canceller.signal);
|
|
269
|
-
cancellableSleep(blockedFor, canceller.signal).then(() => requestCdn(nextWantedCdn).then(cleanAndResolve, cleanAndReject),
|
|
268
|
+
cancellableSleep(blockedFor, canceller.signal).then(() => requestCdn(nextWantedCdn).then(cleanAndResolve, cleanAndReject), (err) => cleanAndReject(cancellationSignal.isCancelled() ? cancellationSignal.cancellationError : err));
|
|
270
269
|
function cleanAndResolve(response) {
|
|
271
270
|
unlinkCanceller();
|
|
272
271
|
res(response);
|
|
@@ -37,8 +37,6 @@ export interface IGarbageCollectorArgument {
|
|
|
37
37
|
*
|
|
38
38
|
* @param {Object} opt
|
|
39
39
|
* @param {Object} cancellationSignal
|
|
40
|
-
*
|
|
41
|
-
* TODO Move to main thread?
|
|
42
40
|
*/
|
|
43
41
|
export default function BufferGarbageCollector({ segmentSink, playbackObserver, maxBufferBehind, maxBufferAhead, }: IGarbageCollectorArgument, cancellationSignal: CancellationSignal): void;
|
|
44
42
|
//# sourceMappingURL=garbage_collector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garbage_collector.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/garbage_collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,iDAAiD;IACjD,gBAAgB,EAAE,yBAAyB,CACzC,IAAI,CAAC,sCAAsC,EAAE,UAAU,GAAG,UAAU,CAAC,CACtE,CAAC;IACF,oEAAoE;IACpE,eAAe,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAClD,oEAAoE;IACpE,cAAc,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;CAClD;AAED
|
|
1
|
+
{"version":3,"file":"garbage_collector.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/garbage_collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,iDAAiD;IACjD,gBAAgB,EAAE,yBAAyB,CACzC,IAAI,CAAC,sCAAsC,EAAE,UAAU,GAAG,UAAU,CAAC,CACtE,CAAC;IACF,oEAAoE;IACpE,eAAe,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAClD,oEAAoE;IACpE,cAAc,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;CAClD;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,EACE,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,EAAE,yBAAyB,EAC5B,kBAAkB,EAAE,kBAAkB,GACrC,IAAI,CAgCN"}
|
|
@@ -26,8 +26,6 @@ import TaskCanceller from "../../utils/task_canceller";
|
|
|
26
26
|
*
|
|
27
27
|
* @param {Object} opt
|
|
28
28
|
* @param {Object} cancellationSignal
|
|
29
|
-
*
|
|
30
|
-
* TODO Move to main thread?
|
|
31
29
|
*/
|
|
32
30
|
export default function BufferGarbageCollector({ segmentSink, playbackObserver, maxBufferBehind, maxBufferAhead, }, cancellationSignal) {
|
|
33
31
|
let lastPosition;
|
|
@@ -51,7 +49,6 @@ export default function BufferGarbageCollector({ segmentSink, playbackObserver,
|
|
|
51
49
|
}
|
|
52
50
|
maxBufferBehind.onUpdate(clean, { clearSignal: cancellationSignal });
|
|
53
51
|
maxBufferAhead.onUpdate(clean, { clearSignal: cancellationSignal });
|
|
54
|
-
clean();
|
|
55
52
|
}
|
|
56
53
|
/**
|
|
57
54
|
* Remove buffer from the browser's memory based on the user's
|
|
@@ -45,7 +45,7 @@ export default class TextSegmentSink extends SegmentSink {
|
|
|
45
45
|
* @returns {Array.<Object>}
|
|
46
46
|
*/
|
|
47
47
|
getPendingOperations(): Array<ISBOperation<unknown>>;
|
|
48
|
-
dispose(): void;
|
|
48
|
+
dispose(reason: string | undefined): void;
|
|
49
49
|
private _addToOperationQueue;
|
|
50
50
|
}
|
|
51
51
|
/** Data of chunks that should be pushed to the HTMLTextSegmentSink. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text_segment_sink.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/text/text_segment_sink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;OAEG;gBACS,mBAAmB,EAAE,uBAAuB;IASxD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMjD;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM9C;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB1E;;;;;OAKG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxE;;;OAGG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAIpD,OAAO,
|
|
1
|
+
{"version":3,"file":"text_segment_sink.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/text/text_segment_sink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;OAEG;gBACS,mBAAmB,EAAE,uBAAuB;IASxD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMjD;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM9C;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB1E;;;;;OAKG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxE;;;OAGG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAIpD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKhD,OAAO,CAAC,oBAAoB;CAc7B;AAED,uEAAuE;AACvE,MAAM,WAAW,4BAA4B,CAC3C,CAAC,SAAS,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,GACpD,MAAM,GACN,UAAU,CAAC,WAAW,CAAC,GACvB,WAAW;IAEf,8DAA8D;IAC9D,IAAI,EAAE,CAAC,CAAC;IACR,8DAA8D;IAC9D,IAAI,EAAE,yBAAyB,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;;;;OAOG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAoED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,YAAY,CACV,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,MAAM,CACJ,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACxC"}
|
|
@@ -98,9 +98,9 @@ export default class TextSegmentSink extends SegmentSink {
|
|
|
98
98
|
getPendingOperations() {
|
|
99
99
|
return this._pendingOperations.map((p) => p.operation);
|
|
100
100
|
}
|
|
101
|
-
dispose() {
|
|
101
|
+
dispose(reason) {
|
|
102
102
|
log.debug("Stream", "Disposing TextSegmentSink");
|
|
103
|
-
this._sender.
|
|
103
|
+
this._sender.stop(reason);
|
|
104
104
|
}
|
|
105
105
|
_addToOperationQueue(promise, operation) {
|
|
106
106
|
const queueObject = { operation, promise };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptation_stream.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/adaptation/adaptation_stream.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,EACE,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,uBAAuB,EACvB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,0BAA0B,EAC7B,SAAS,EAAE,0BAA0B,EACrC,kBAAkB,EAAE,kBAAkB,GACrC,IAAI,
|
|
1
|
+
{"version":3,"file":"adaptation_stream.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/adaptation/adaptation_stream.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,EACE,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,uBAAuB,EACvB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,0BAA0B,EAC7B,SAAS,EAAE,0BAA0B,EACrC,kBAAkB,EAAE,kBAAkB,GACrC,IAAI,CA6gBN"}
|
|
@@ -119,11 +119,11 @@ export default function AdaptationStream({ playbackObserver, content, options, r
|
|
|
119
119
|
// decipherability updates, "`Representation` avoidance" etc.
|
|
120
120
|
const newRepresentations = getRepresentationList(content.adaptation.representations, newRepIds);
|
|
121
121
|
representationsList.setValueIfChanged(newRepresentations);
|
|
122
|
-
|
|
123
|
-
cancelCurrentStreams
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
const currentStreamCanceller = new TaskCanceller("AdaptationStream: RepresentationStream Group " + adaptation.type);
|
|
123
|
+
cancelCurrentStreams = currentStreamCanceller;
|
|
124
|
+
currentStreamCanceller.linkToSignal(adapStreamCanceller.signal);
|
|
125
|
+
onRepresentationsChoiceChange(val, currentStreamCanceller.signal).catch((err) => {
|
|
126
|
+
if (currentStreamCanceller.isUsed() && TaskCanceller.isCancellationError(err)) {
|
|
127
127
|
return;
|
|
128
128
|
}
|
|
129
129
|
adapStreamCanceller.cancel("RepresentationStream err");
|
|
@@ -445,7 +445,7 @@ export default function AdaptationStream({ playbackObserver, content, options, r
|
|
|
445
445
|
// When `wba` is equal to `Infinity`, dividing it will still make it equal
|
|
446
446
|
// to `Infinity`. To make the `bufferGoalRatio` still have an effect, we
|
|
447
447
|
// just starts from a `wba` set to the high value of 5 minutes.
|
|
448
|
-
return 5 * 60 *
|
|
448
|
+
return 5 * 60 * bufferGoalRatio;
|
|
449
449
|
}
|
|
450
450
|
return wba * bufferGoalRatio;
|
|
451
451
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream_orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/orchestrator/stream_orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,SAAS,EAA8B,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAG5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,gCAAgC,EAEjC,MAAM,WAAW,CAAC;AAKnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,OAAO,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,EACxD,gBAAgB,EAAE,yBAAyB,CAAC,sCAAsC,CAAC,EACnF,uBAAuB,EAAE,wBAAwB,EACjD,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,0BAA0B,EACnC,SAAS,EAAE,4BAA4B,EACvC,wBAAwB,EAAE,kBAAkB,GAC3C,IAAI,
|
|
1
|
+
{"version":3,"file":"stream_orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/orchestrator/stream_orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,SAAS,EAA8B,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAG5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,gCAAgC,EAEjC,MAAM,WAAW,CAAC;AAKnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,OAAO,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,EACxD,gBAAgB,EAAE,yBAAyB,CAAC,sCAAsC,CAAC,EACnF,uBAAuB,EAAE,wBAAwB,EACjD,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,0BAA0B,EACnC,SAAS,EAAE,4BAA4B,EACvC,wBAAwB,EAAE,kBAAkB,GAC3C,IAAI,CA2lBN;AAED,MAAM,MAAM,sCAAsC,GAAG,gCAAgC,CAAC;AAEtF,+DAA+D;AAC/D,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,GAAG;IAC9D,iBAAiB,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACpD,kBAAkB,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACrD,cAAc,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjD,eAAe,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;CACnD,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,4BACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;IAChE;;;;;;;;;OASG;IACH,mBAAmB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAChE;;;;;OAKG;IACH,sBAAsB,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACtE;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD;;;;;;;;;OASG;IACH,yBAAyB,IAAI,IAAI,CAAC;CACnC;AAED,sDAAsD;AACtD,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,mEAAmE;IACnE,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,yDAAyD;AACzD,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,+CAA+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,UAAU,EAAE,WAAW,CAAC;CACzB"}
|