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,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = canPatchOutPsshBox;
|
|
4
|
+
var config_1 = require("../config");
|
|
5
|
+
var env_detector_1 = require("./env_detector");
|
|
6
|
+
/**
|
|
7
|
+
* When talking about `ISOBMFF`/.mp4 metadata, the `pssh` is a box (a subpart of
|
|
8
|
+
* that file) containing protection-related metadata that is then used to
|
|
9
|
+
* interact with EME APIs.
|
|
10
|
+
*
|
|
11
|
+
* The idea in EME scenarios is that the EME player (here the RxPlayer) will
|
|
12
|
+
* take that data and communicate it to the browser's CDM (Content Decryption
|
|
13
|
+
* Module) through an EME API (generally `generateRequest`).
|
|
14
|
+
*
|
|
15
|
+
* There is a mechanism in place in browsers, presumably to facilitate that work
|
|
16
|
+
* which is that when the browser sees a `pssh` box in media data (either linked
|
|
17
|
+
* directly through a media element's `src` attribute or one communicated
|
|
18
|
+
* through MSE API) it can send an `encrypted` event so a JS player can then
|
|
19
|
+
* communicate it to the right EME API.
|
|
20
|
+
*
|
|
21
|
+
* However, in an MSE/EME player, we often are distrustful of letting the browser
|
|
22
|
+
* do work that can without issue be already done on our side (due to being
|
|
23
|
+
* burned too much time on some weird environment, where the spec isn't respected
|
|
24
|
+
* to the letter). So instead historically in MSE scenarios, the RxPlayer read the
|
|
25
|
+
* `pssh` itself, and then "patched it out" (replaced it with a `free` box,
|
|
26
|
+
* effectively a no-op for ISOBMFF metadata) from the segment before giving it to
|
|
27
|
+
* the browser's buffer so that we skip that now unnecessary browser round-trip
|
|
28
|
+
* (the `encrypted` event) and supplementary API surface that could be broken.
|
|
29
|
+
*
|
|
30
|
+
* Several years pass without issue, but in early 2026, we found out that one
|
|
31
|
+
* device, a "Streama" STB from DStv (owned by Multichoice) refuse to bufferise
|
|
32
|
+
* segments which had this "optimization" performed.
|
|
33
|
+
* We have no idea why, from our POV it's an issue on the browser integration side.
|
|
34
|
+
* They don't disagree but they cannot update that part of their device easily.
|
|
35
|
+
*
|
|
36
|
+
* So we decided to fix it player-side. When discussing about it, we hesitated
|
|
37
|
+
* between removing that "optimization" altogether or only for the specific device
|
|
38
|
+
* where we identified the issue. I chose (though far from everyone agreed!) the
|
|
39
|
+
* second solution (only for problematic device) because I feared changing
|
|
40
|
+
* behavior too much compared to most of our previous versions could break
|
|
41
|
+
* other devices, even if we saw that some other players such as the
|
|
42
|
+
* shaka-player did not do that same optimization.
|
|
43
|
+
*
|
|
44
|
+
* @returns {boolean}
|
|
45
|
+
*/
|
|
46
|
+
function canPatchOutPsshBox() {
|
|
47
|
+
var PREVENT_PSSH_PATCHING = config_1.default.getCurrent().PREVENT_PSSH_PATCHING;
|
|
48
|
+
if (PREVENT_PSSH_PATCHING ||
|
|
49
|
+
env_detector_1.default.device === env_detector_1.default.DEVICES.StreamaMdp1001S) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
@@ -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"}
|
|
@@ -66,6 +66,8 @@ var DEVICES = {
|
|
|
66
66
|
Xbox: 109,
|
|
67
67
|
/** Another device that does not match with the others defined here. */
|
|
68
68
|
Other: 110,
|
|
69
|
+
/** DSTtv's Streama STB MPD1001S, which is known to have some quirks. */
|
|
70
|
+
StreamaMdp1001S: 111,
|
|
69
71
|
};
|
|
70
72
|
/** Object giving information on the current environment where the RxPlayer runs. */
|
|
71
73
|
var EnvDetector = {
|
|
@@ -153,6 +155,9 @@ function resetEnvironment() {
|
|
|
153
155
|
else if (navigator.userAgent.indexOf("PlayStation 5") !== -1) {
|
|
154
156
|
EnvDetector.device = DEVICES.PlayStation5;
|
|
155
157
|
}
|
|
158
|
+
else if (navigator.userAgent.indexOf("DStv Streama, MDMP1001S") !== -1) {
|
|
159
|
+
EnvDetector.device = DEVICES.StreamaMdp1001S;
|
|
160
|
+
}
|
|
156
161
|
else if (/Tizen/.test(navigator.userAgent)) {
|
|
157
162
|
EnvDetector.device = DEVICES.Tizen;
|
|
158
163
|
// 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"}
|
|
@@ -133,9 +133,9 @@ function estimateStarvationModeBitrate(pendingRequests, playbackInfo, currentRep
|
|
|
133
133
|
}
|
|
134
134
|
var concernedRequest = concernedRequests[0];
|
|
135
135
|
var now = (0, monotonic_timestamp_1.default)();
|
|
136
|
-
var minimumRequestTime = concernedRequest.content.segment.duration *
|
|
137
|
-
minimumRequestTime = Math.
|
|
138
|
-
minimumRequestTime = Math.
|
|
136
|
+
var minimumRequestTime = concernedRequest.content.segment.duration * 1500;
|
|
137
|
+
minimumRequestTime = Math.max(minimumRequestTime, 3000);
|
|
138
|
+
minimumRequestTime = Math.min(minimumRequestTime, 12000);
|
|
139
139
|
if (now - concernedRequest.requestTimestamp < minimumRequestTime) {
|
|
140
140
|
return undefined;
|
|
141
141
|
}
|
|
@@ -76,7 +76,7 @@ var RepresentationScoreCalculator = /** @class */ (function () {
|
|
|
76
76
|
representation: representation,
|
|
77
77
|
ewma: currentEWMA,
|
|
78
78
|
loadedDuration: segmentDuration,
|
|
79
|
-
loadedSegments:
|
|
79
|
+
loadedSegments: 1,
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
if (currentEWMA.getEstimate() > 1 &&
|
|
@@ -100,7 +100,7 @@ var RepresentationScoreCalculator = /** @class */ (function () {
|
|
|
100
100
|
}
|
|
101
101
|
var _a = this._currentRepresentationData, ewma = _a.ewma, loadedSegments = _a.loadedSegments, loadedDuration = _a.loadedDuration;
|
|
102
102
|
var estimate = ewma.getEstimate();
|
|
103
|
-
var confidenceLevel = loadedSegments >=
|
|
103
|
+
var confidenceLevel = loadedSegments >= 6 && loadedDuration >= 10
|
|
104
104
|
? 1 /* ScoreConfidenceLevel.HIGH */
|
|
105
105
|
: 0 /* ScoreConfidenceLevel.LOW */;
|
|
106
106
|
return { score: estimate, confidenceLevel: 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"}
|
|
@@ -113,7 +113,10 @@ var CmcdDataBuilder = /** @class */ (function () {
|
|
|
113
113
|
props.sid = this._sessionId;
|
|
114
114
|
var lastObservation = (_a = this._playbackObserver) === null || _a === void 0 ? void 0 : _a.getReference().getValue();
|
|
115
115
|
props.pr =
|
|
116
|
-
lastObservation === undefined ||
|
|
116
|
+
lastObservation === undefined ||
|
|
117
|
+
!isFinite(lastObservation.speed) ||
|
|
118
|
+
lastObservation.speed < 0 ||
|
|
119
|
+
lastObservation.speed === 1
|
|
117
120
|
? undefined
|
|
118
121
|
: lastObservation.speed;
|
|
119
122
|
if (lastObservation !== undefined) {
|
|
@@ -221,7 +224,10 @@ var CmcdDataBuilder = /** @class */ (function () {
|
|
|
221
224
|
}
|
|
222
225
|
}
|
|
223
226
|
}
|
|
224
|
-
var precizeDeadlineMs = precizeBufferLengthMs === undefined ||
|
|
227
|
+
var precizeDeadlineMs = precizeBufferLengthMs === undefined ||
|
|
228
|
+
lastObservation === undefined ||
|
|
229
|
+
!isFinite(lastObservation.speed) ||
|
|
230
|
+
lastObservation.speed <= 0
|
|
225
231
|
? undefined
|
|
226
232
|
: precizeBufferLengthMs / lastObservation.speed;
|
|
227
233
|
props.dl =
|
|
@@ -296,7 +302,7 @@ var CmcdDataBuilder = /** @class */ (function () {
|
|
|
296
302
|
var addStringProperty = function (prop, headerName) {
|
|
297
303
|
var val = props[prop];
|
|
298
304
|
if (val !== undefined) {
|
|
299
|
-
var formatted = "\"".concat(val.replace(
|
|
305
|
+
var formatted = "\"".concat(val.replace(/\\/g, "\\\\").replace(/"/g, '\\"'), "\"");
|
|
300
306
|
var toAdd = "".concat(prop, "=").concat(formatted, ",");
|
|
301
307
|
addPayload(toAdd, headerName);
|
|
302
308
|
}
|
|
@@ -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"}
|
|
@@ -180,11 +180,6 @@ var ContentPreparer = /** @class */ (function () {
|
|
|
180
180
|
checkIfReadyAndValidate();
|
|
181
181
|
}, currentMediaSourceCanceller.signal);
|
|
182
182
|
manifestFetcher.addEventListener("error", function (err) {
|
|
183
|
-
sendMessage({
|
|
184
|
-
type: "error" /* CoreMessageType.Error */,
|
|
185
|
-
contentId: contentId,
|
|
186
|
-
value: (0, utils_1.formatErrorForSender)(err),
|
|
187
|
-
});
|
|
188
183
|
rej(err);
|
|
189
184
|
}, contentCanceller.signal);
|
|
190
185
|
manifestFetcher.start();
|
|
@@ -242,17 +237,20 @@ var ContentPreparer = /** @class */ (function () {
|
|
|
242
237
|
*/
|
|
243
238
|
ContentPreparer.prototype.reloadMediaSource = function (sendMessage) {
|
|
244
239
|
var _this = this;
|
|
240
|
+
var _a;
|
|
245
241
|
this._currentMediaSourceCanceller.cancel("ContentPreparer MediaSource reload");
|
|
246
242
|
if (this._currentContent === null) {
|
|
247
243
|
return Promise.reject(new Error("CP: No content anymore"));
|
|
248
244
|
}
|
|
249
245
|
this._currentContent.trackChoiceSetter.reset();
|
|
246
|
+
(_a = this._currentContent.coreTextSender) === null || _a === void 0 ? void 0 : _a.stop("ContentPreparer MediaSource reload");
|
|
250
247
|
this._currentMediaSourceCanceller = new task_canceller_1.default("ContentPreparer MediaSource");
|
|
251
|
-
|
|
248
|
+
this._currentMediaSourceCanceller.linkToSignal(this._contentCanceller.signal);
|
|
249
|
+
var _b = __read(createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, this._currentContent.contentId, {
|
|
252
250
|
useMseInWorker: this._currentContent.useMseInWorker,
|
|
253
251
|
hasVideo: this._hasVideo,
|
|
254
252
|
hasText: this._currentContent.coreTextSender !== null,
|
|
255
|
-
}, this._currentMediaSourceCanceller.signal), 3), mediaSourceInterface =
|
|
253
|
+
}, this._currentMediaSourceCanceller.signal), 3), mediaSourceInterface = _b[0], segmentSinksStore = _b[1], coreTextSender = _b[2];
|
|
256
254
|
this._currentContent.mediaSource = mediaSourceInterface;
|
|
257
255
|
this._currentContent.segmentSinksStore = segmentSinksStore;
|
|
258
256
|
this._currentContent.freezeResolver = new FreezeResolver_1.default(segmentSinksStore);
|
|
@@ -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"}
|
|
@@ -982,15 +982,19 @@ function sendThumbnailData(sendMessage, contentPreparer, msg) {
|
|
|
982
982
|
return respondWithError(new Error("Content changed"));
|
|
983
983
|
}
|
|
984
984
|
(0, get_thumbnail_data_1.default)(preparedContent.fetchThumbnailData, preparedContent.manifest, msg.value.periodId, msg.value.thumbnailTrackId, msg.value.time).then(function (result) {
|
|
985
|
+
// Multiple thumbnail requests can share the same fetched payload.
|
|
986
|
+
// Transfer a copy here so replying to one request does not detach the
|
|
987
|
+
// ArrayBuffer that still has to be sent to another requester.
|
|
988
|
+
var data = result.data.slice(0);
|
|
985
989
|
sendMessage({
|
|
986
990
|
type: "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */,
|
|
987
991
|
contentId: msg.contentId,
|
|
988
992
|
value: {
|
|
989
993
|
status: "success",
|
|
990
994
|
requestId: msg.value.requestId,
|
|
991
|
-
data: result,
|
|
995
|
+
data: __assign(__assign({}, result), { data: data }),
|
|
992
996
|
},
|
|
993
|
-
}, [
|
|
997
|
+
}, [data]);
|
|
994
998
|
}, function (err) {
|
|
995
999
|
return respondWithError(err);
|
|
996
1000
|
});
|
|
@@ -24,12 +24,12 @@ var CoreTextDisplayerInterface = /** @class */ (function () {
|
|
|
24
24
|
CoreTextDisplayerInterface.prototype.pushTextData = function (infos) {
|
|
25
25
|
var _this = this;
|
|
26
26
|
return new Promise(function (resolve, reject) {
|
|
27
|
+
_this._queues.pushTextData.push({ resolve: resolve, reject: reject });
|
|
27
28
|
_this._messageSender({
|
|
28
29
|
type: "push-text-data" /* CoreMessageType.PushTextData */,
|
|
29
30
|
contentId: _this._contentId,
|
|
30
31
|
value: infos,
|
|
31
32
|
});
|
|
32
|
-
_this._queues.pushTextData.push({ resolve: resolve, reject: reject });
|
|
33
33
|
});
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
@@ -38,12 +38,12 @@ var CoreTextDisplayerInterface = /** @class */ (function () {
|
|
|
38
38
|
CoreTextDisplayerInterface.prototype.remove = function (start, end) {
|
|
39
39
|
var _this = this;
|
|
40
40
|
return new Promise(function (resolve, reject) {
|
|
41
|
+
_this._queues.remove.push({ resolve: resolve, reject: reject });
|
|
41
42
|
_this._messageSender({
|
|
42
43
|
type: "remove-text-data" /* CoreMessageType.RemoveTextData */,
|
|
43
44
|
contentId: _this._contentId,
|
|
44
45
|
value: { start: start, end: end },
|
|
45
46
|
});
|
|
46
|
-
_this._queues.remove.push({ resolve: resolve, reject: reject });
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
@@ -118,7 +118,7 @@ var CoreTextDisplayerInterface = /** @class */ (function () {
|
|
|
118
118
|
CoreTextDisplayerInterface.prototype.onRemoveError = function (err) {
|
|
119
119
|
var element = this._queues.remove.shift();
|
|
120
120
|
if (element === undefined) {
|
|
121
|
-
log_1.default.error("text", "
|
|
121
|
+
log_1.default.error("text", "remove error for inexistant operation");
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
124
|
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"}
|
|
@@ -175,6 +175,12 @@ var ManifestFetcher = /** @class */ (function (_super) {
|
|
|
175
175
|
*/
|
|
176
176
|
ManifestFetcher.prototype.updateContentUrls = function (urls, refreshNow) {
|
|
177
177
|
var _a;
|
|
178
|
+
// Keep track of the application-provided content URLs.
|
|
179
|
+
this._manifestUrls = urls;
|
|
180
|
+
// Indicate that we want to prioritize for the next refresh.
|
|
181
|
+
// Once a refreshed Manifest has been parsed we still let the Manifest's own
|
|
182
|
+
// URL list drive subsequent refreshes (e.g. if the transport/parser updated
|
|
183
|
+
// it on purpose).
|
|
178
184
|
this._prioritizedContentUrl = (_a = urls === null || urls === void 0 ? void 0 : urls[0]) !== null && _a !== void 0 ? _a : undefined;
|
|
179
185
|
if (refreshNow) {
|
|
180
186
|
this.scheduleManualRefresh({
|
|
@@ -561,11 +567,17 @@ var ManifestFetcher = /** @class */ (function (_super) {
|
|
|
561
567
|
var fullRefresh;
|
|
562
568
|
var refreshURL;
|
|
563
569
|
if (this._prioritizedContentUrl !== null) {
|
|
570
|
+
// `updateContentUrls` explicitly requested that the next refresh uses that
|
|
571
|
+
// URL. This override is one-shot on purpose.
|
|
564
572
|
fullRefresh = true;
|
|
565
573
|
refreshURL = this._prioritizedContentUrl;
|
|
566
574
|
this._prioritizedContentUrl = null;
|
|
567
575
|
}
|
|
568
576
|
else {
|
|
577
|
+
// Outside of that explicit one-shot override, prefer the URLs currently
|
|
578
|
+
// exposed by the Manifest itself. This allows parser/content-level URL
|
|
579
|
+
// updates (e.g. redirects or manifest-provided alternatives) to stay the
|
|
580
|
+
// source of truth after the refresh completed.
|
|
569
581
|
fullRefresh = !enablePartialRefresh || manifestUpdateUrl === undefined;
|
|
570
582
|
refreshURL = fullRefresh ? manifest.getUrls()[0] : manifestUpdateUrl;
|
|
571
583
|
}
|
|
@@ -144,7 +144,7 @@ cdnPrioritizer) {
|
|
|
144
144
|
* @returns {Promise}
|
|
145
145
|
*/
|
|
146
146
|
function callLoaderWithUrl(cdnMetadata) {
|
|
147
|
-
return loadThumbnail(cdnMetadata, thumbnail, pipelineRequestOptions,
|
|
147
|
+
return loadThumbnail(cdnMetadata, thumbnail, pipelineRequestOptions, requestCanceller.signal);
|
|
148
148
|
}
|
|
149
149
|
/**
|
|
150
150
|
* 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"}
|
|
@@ -58,7 +58,6 @@ var log_1 = require("../../../log");
|
|
|
58
58
|
var cancellable_sleep_1 = require("../../../utils/cancellable_sleep");
|
|
59
59
|
var get_fuzzed_delay_1 = require("../../../utils/get_fuzzed_delay");
|
|
60
60
|
var monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
|
|
61
|
-
var noop_1 = require("../../../utils/noop");
|
|
62
61
|
var request_1 = require("../../../utils/request");
|
|
63
62
|
var task_canceller_1 = require("../../../utils/task_canceller");
|
|
64
63
|
/**
|
|
@@ -299,7 +298,7 @@ function scheduleRequestWithCdns(cdns, cdnPrioritizer, performRequest, options,
|
|
|
299
298
|
cdnPrioritizer === null || cdnPrioritizer === void 0 ? void 0 : cdnPrioritizer.addEventListener("priorityChange", function () {
|
|
300
299
|
var updatedPrioritaryCdn = getCdnToRequest();
|
|
301
300
|
if (cancellationSignal.isCancelled()) {
|
|
302
|
-
|
|
301
|
+
return;
|
|
303
302
|
}
|
|
304
303
|
if (updatedPrioritaryCdn === undefined) {
|
|
305
304
|
return cleanAndReject(prevRequestError);
|
|
@@ -309,7 +308,9 @@ function scheduleRequestWithCdns(cdns, cdnPrioritizer, performRequest, options,
|
|
|
309
308
|
waitPotentialBackoffAndRequest(updatedPrioritaryCdn, prevRequestError).then(cleanAndResolve, cleanAndReject);
|
|
310
309
|
}
|
|
311
310
|
}, canceller.signal);
|
|
312
|
-
(0, cancellable_sleep_1.default)(blockedFor, canceller.signal).then(function () { return requestCdn(nextWantedCdn).then(cleanAndResolve, cleanAndReject); },
|
|
311
|
+
(0, cancellable_sleep_1.default)(blockedFor, canceller.signal).then(function () { return requestCdn(nextWantedCdn).then(cleanAndResolve, cleanAndReject); }, function (err) {
|
|
312
|
+
return cleanAndReject(cancellationSignal.isCancelled() ? cancellationSignal.cancellationError : err);
|
|
313
|
+
});
|
|
313
314
|
function cleanAndResolve(response) {
|
|
314
315
|
unlinkCanceller();
|
|
315
316
|
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"}
|
|
@@ -76,8 +76,6 @@ var task_canceller_1 = require("../../utils/task_canceller");
|
|
|
76
76
|
*
|
|
77
77
|
* @param {Object} opt
|
|
78
78
|
* @param {Object} cancellationSignal
|
|
79
|
-
*
|
|
80
|
-
* TODO Move to main thread?
|
|
81
79
|
*/
|
|
82
80
|
function BufferGarbageCollector(_a, cancellationSignal) {
|
|
83
81
|
var segmentSink = _a.segmentSink, playbackObserver = _a.playbackObserver, maxBufferBehind = _a.maxBufferBehind, maxBufferAhead = _a.maxBufferAhead;
|
|
@@ -102,7 +100,6 @@ function BufferGarbageCollector(_a, cancellationSignal) {
|
|
|
102
100
|
}
|
|
103
101
|
maxBufferBehind.onUpdate(clean, { clearSignal: cancellationSignal });
|
|
104
102
|
maxBufferAhead.onUpdate(clean, { clearSignal: cancellationSignal });
|
|
105
|
-
clean();
|
|
106
103
|
}
|
|
107
104
|
/**
|
|
108
105
|
* 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"}
|
|
@@ -196,9 +196,9 @@ var TextSegmentSink = /** @class */ (function (_super) {
|
|
|
196
196
|
TextSegmentSink.prototype.getPendingOperations = function () {
|
|
197
197
|
return this._pendingOperations.map(function (p) { return p.operation; });
|
|
198
198
|
};
|
|
199
|
-
TextSegmentSink.prototype.dispose = function () {
|
|
199
|
+
TextSegmentSink.prototype.dispose = function (reason) {
|
|
200
200
|
log_1.default.debug("Stream", "Disposing TextSegmentSink");
|
|
201
|
-
this._sender.
|
|
201
|
+
this._sender.stop(reason);
|
|
202
202
|
};
|
|
203
203
|
TextSegmentSink.prototype._addToOperationQueue = function (promise, operation) {
|
|
204
204
|
var _this = this;
|
|
@@ -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"}
|
|
@@ -171,11 +171,11 @@ function AdaptationStream(_a, callbacks, parentCancelSignal) {
|
|
|
171
171
|
// decipherability updates, "`Representation` avoidance" etc.
|
|
172
172
|
var newRepresentations = getRepresentationList(content.adaptation.representations, newRepIds);
|
|
173
173
|
representationsList.setValueIfChanged(newRepresentations);
|
|
174
|
-
|
|
175
|
-
cancelCurrentStreams
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
var currentStreamCanceller = new task_canceller_1.default("AdaptationStream: RepresentationStream Group " + adaptation.type);
|
|
175
|
+
cancelCurrentStreams = currentStreamCanceller;
|
|
176
|
+
currentStreamCanceller.linkToSignal(adapStreamCanceller.signal);
|
|
177
|
+
onRepresentationsChoiceChange(val, currentStreamCanceller.signal).catch(function (err) {
|
|
178
|
+
if (currentStreamCanceller.isUsed() && task_canceller_1.default.isCancellationError(err)) {
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
181
|
adapStreamCanceller.cancel("RepresentationStream err");
|
|
@@ -564,7 +564,7 @@ function AdaptationStream(_a, callbacks, parentCancelSignal) {
|
|
|
564
564
|
// When `wba` is equal to `Infinity`, dividing it will still make it equal
|
|
565
565
|
// to `Infinity`. To make the `bufferGoalRatio` still have an effect, we
|
|
566
566
|
// just starts from a `wba` set to the high value of 5 minutes.
|
|
567
|
-
return 5 * 60 *
|
|
567
|
+
return 5 * 60 * bufferGoalRatio;
|
|
568
568
|
}
|
|
569
569
|
return wba * bufferGoalRatio;
|
|
570
570
|
}
|
|
@@ -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"}
|