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
|
@@ -172,7 +172,6 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
172
172
|
manifest: null,
|
|
173
173
|
mediaSourceInfo: null,
|
|
174
174
|
rebufferingController: null,
|
|
175
|
-
streamEventsEmitter: null,
|
|
176
175
|
initialTime: undefined,
|
|
177
176
|
autoPlay: undefined,
|
|
178
177
|
initialPlayPerformed: null,
|
|
@@ -311,17 +310,22 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
311
310
|
return;
|
|
312
311
|
}
|
|
313
312
|
var textDisplayer = null;
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
(
|
|
321
|
-
|
|
313
|
+
try {
|
|
314
|
+
if (this._settings.textTrackOptions.textTrackMode === "html" &&
|
|
315
|
+
features_1.default.htmlTextDisplayer !== null) {
|
|
316
|
+
(0, assert_1.default)(this._hasTextBufferFeature());
|
|
317
|
+
textDisplayer = new features_1.default.htmlTextDisplayer(mediaElement, this._settings.textTrackOptions.textTrackElement);
|
|
318
|
+
}
|
|
319
|
+
else if (features_1.default.nativeTextDisplayer !== null) {
|
|
320
|
+
(0, assert_1.default)(this._hasTextBufferFeature());
|
|
321
|
+
textDisplayer = new features_1.default.nativeTextDisplayer(mediaElement);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
(0, assert_1.default)(!this._hasTextBufferFeature());
|
|
325
|
+
}
|
|
322
326
|
}
|
|
323
|
-
|
|
324
|
-
|
|
327
|
+
catch (err) {
|
|
328
|
+
log_1.default.error("Init", "failed to initialize text displayer", err instanceof Error ? err : "Unknown Error");
|
|
325
329
|
}
|
|
326
330
|
this._initCanceller.signal.register(function (err) {
|
|
327
331
|
textDisplayer === null || textDisplayer === void 0 ? void 0 : textDisplayer.stop(err.reason);
|
|
@@ -339,12 +343,23 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
339
343
|
if (contentInfo !== null) {
|
|
340
344
|
contentInfo.contentDecryptor = contentDecryptor;
|
|
341
345
|
}
|
|
346
|
+
var streamEventsEmitter = new stream_events_emitter_1.default(playbackObserver);
|
|
347
|
+
streamEventsEmitter.addEventListener("event", function (payload) {
|
|
348
|
+
_this.trigger("streamEvent", payload);
|
|
349
|
+
}, this._initCanceller.signal);
|
|
350
|
+
streamEventsEmitter.addEventListener("eventSkip", function (payload) {
|
|
351
|
+
_this.trigger("streamEventSkip", payload);
|
|
352
|
+
}, this._initCanceller.signal);
|
|
353
|
+
this._initCanceller.signal.register(function (err) {
|
|
354
|
+
streamEventsEmitter.stop(err.reason);
|
|
355
|
+
});
|
|
342
356
|
var playbackStartParams = {
|
|
343
357
|
mediaElement: mediaElement,
|
|
344
358
|
textDisplayer: textDisplayer,
|
|
345
359
|
playbackObserver: playbackObserver,
|
|
346
360
|
drmInitializationStatus: drmInitializationStatus,
|
|
347
361
|
mediaSourceStatus: mediaSourceStatus,
|
|
362
|
+
streamEventsEmitter: streamEventsEmitter,
|
|
348
363
|
};
|
|
349
364
|
mediaSourceStatus.onUpdate(function (msInitStatus, stopListeningMSStatus) {
|
|
350
365
|
if (msInitStatus === 2 /* MediaSourceInitializationStatus.Attached */) {
|
|
@@ -421,10 +436,10 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
421
436
|
if (maximumPosition !== undefined) {
|
|
422
437
|
position = Math.min(maximumPosition, position);
|
|
423
438
|
}
|
|
424
|
-
_this._reload(mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, position, !isPaused);
|
|
439
|
+
_this._reload(mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, streamEventsEmitter, position, !isPaused);
|
|
425
440
|
};
|
|
426
441
|
var onmessage = function (msgData) {
|
|
427
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26
|
|
442
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26;
|
|
428
443
|
switch (msgData.type) {
|
|
429
444
|
case "attach-media-source" /* CoreMessageType.AttachMediaSource */: {
|
|
430
445
|
if (((_a = _this._currentContentInfo) === null || _a === void 0 ? void 0 : _a.contentId) !== msgData.contentId) {
|
|
@@ -740,6 +755,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
740
755
|
return;
|
|
741
756
|
}
|
|
742
757
|
var manifest = msgData.value.manifest;
|
|
758
|
+
streamEventsEmitter.start(manifest);
|
|
743
759
|
_this._currentContentInfo.manifest = manifest;
|
|
744
760
|
_this._updateCodecSupport(manifest, mediaElement);
|
|
745
761
|
_this._startPlaybackIfReady(playbackStartParams);
|
|
@@ -761,19 +777,19 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
761
777
|
// share it with Core and as such don't need to replicate the updates.
|
|
762
778
|
(0, manifest_1.replicateUpdatesOnManifestMetadata)(manifest, msgData.value.manifest, msgData.value.updates);
|
|
763
779
|
}
|
|
764
|
-
|
|
780
|
+
streamEventsEmitter.onManifestUpdate(manifest);
|
|
765
781
|
_this._updateCodecSupport(manifest, mediaElement);
|
|
766
782
|
_this.trigger("manifestUpdate", msgData.value.updates);
|
|
767
783
|
break;
|
|
768
784
|
}
|
|
769
785
|
case "update-playback-rate" /* CoreMessageType.UpdatePlaybackRate */:
|
|
770
|
-
if (((
|
|
786
|
+
if (((_11 = _this._currentContentInfo) === null || _11 === void 0 ? void 0 : _11.contentId) !== msgData.contentId) {
|
|
771
787
|
return;
|
|
772
788
|
}
|
|
773
789
|
playbackObserver.setPlaybackRate(msgData.value);
|
|
774
790
|
break;
|
|
775
791
|
case "bitrate-estimate-change" /* CoreMessageType.BitrateEstimateChange */:
|
|
776
|
-
if (((
|
|
792
|
+
if (((_12 = _this._currentContentInfo) === null || _12 === void 0 ? void 0 : _12.contentId) !== msgData.contentId) {
|
|
777
793
|
return;
|
|
778
794
|
}
|
|
779
795
|
_this.trigger("bitrateEstimateChange", {
|
|
@@ -782,13 +798,13 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
782
798
|
});
|
|
783
799
|
break;
|
|
784
800
|
case "inband-event" /* CoreMessageType.InbandEvent */:
|
|
785
|
-
if (((
|
|
801
|
+
if (((_13 = _this._currentContentInfo) === null || _13 === void 0 ? void 0 : _13.contentId) !== msgData.contentId) {
|
|
786
802
|
return;
|
|
787
803
|
}
|
|
788
804
|
_this.trigger("inbandEvents", msgData.value);
|
|
789
805
|
break;
|
|
790
806
|
case "locked-stream" /* CoreMessageType.LockedStream */: {
|
|
791
|
-
if (((
|
|
807
|
+
if (((_14 = _this._currentContentInfo) === null || _14 === void 0 ? void 0 : _14.contentId) !== msgData.contentId ||
|
|
792
808
|
_this._currentContentInfo.manifest === null) {
|
|
793
809
|
return;
|
|
794
810
|
}
|
|
@@ -796,11 +812,11 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
796
812
|
if (period === undefined) {
|
|
797
813
|
return;
|
|
798
814
|
}
|
|
799
|
-
(
|
|
815
|
+
(_15 = _this._currentContentInfo.rebufferingController) === null || _15 === void 0 ? void 0 : _15.onLockedStream(msgData.value.bufferType, period);
|
|
800
816
|
break;
|
|
801
817
|
}
|
|
802
818
|
case "period-stream-ready" /* CoreMessageType.PeriodStreamReady */: {
|
|
803
|
-
if (((
|
|
819
|
+
if (((_16 = _this._currentContentInfo) === null || _16 === void 0 ? void 0 : _16.contentId) !== msgData.contentId ||
|
|
804
820
|
_this._currentContentInfo.manifest === null) {
|
|
805
821
|
return;
|
|
806
822
|
}
|
|
@@ -857,7 +873,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
857
873
|
break;
|
|
858
874
|
}
|
|
859
875
|
case "period-stream-cleared" /* CoreMessageType.PeriodStreamCleared */: {
|
|
860
|
-
if (((
|
|
876
|
+
if (((_17 = _this._currentContentInfo) === null || _17 === void 0 ? void 0 : _17.contentId) !== msgData.contentId ||
|
|
861
877
|
_this._currentContentInfo.manifest === null) {
|
|
862
878
|
return;
|
|
863
879
|
}
|
|
@@ -868,7 +884,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
868
884
|
break;
|
|
869
885
|
}
|
|
870
886
|
case "discontinuity-update" /* CoreMessageType.DiscontinuityUpdate */: {
|
|
871
|
-
if (((
|
|
887
|
+
if (((_18 = _this._currentContentInfo) === null || _18 === void 0 ? void 0 : _18.contentId) !== msgData.contentId ||
|
|
872
888
|
_this._currentContentInfo.manifest === null) {
|
|
873
889
|
return;
|
|
874
890
|
}
|
|
@@ -879,7 +895,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
879
895
|
});
|
|
880
896
|
return;
|
|
881
897
|
}
|
|
882
|
-
(
|
|
898
|
+
(_19 = _this._currentContentInfo.rebufferingController) === null || _19 === void 0 ? void 0 : _19.updateDiscontinuityInfo({
|
|
883
899
|
period: period,
|
|
884
900
|
bufferType: msgData.value.bufferType,
|
|
885
901
|
discontinuity: msgData.value.discontinuity,
|
|
@@ -888,7 +904,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
888
904
|
break;
|
|
889
905
|
}
|
|
890
906
|
case "push-text-data" /* CoreMessageType.PushTextData */: {
|
|
891
|
-
if (((
|
|
907
|
+
if (((_20 = _this._currentContentInfo) === null || _20 === void 0 ? void 0 : _20.contentId) !== msgData.contentId) {
|
|
892
908
|
return;
|
|
893
909
|
}
|
|
894
910
|
if (textDisplayer === null) {
|
|
@@ -915,7 +931,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
915
931
|
break;
|
|
916
932
|
}
|
|
917
933
|
case "remove-text-data" /* CoreMessageType.RemoveTextData */: {
|
|
918
|
-
if (((
|
|
934
|
+
if (((_21 = _this._currentContentInfo) === null || _21 === void 0 ? void 0 : _21.contentId) !== msgData.contentId) {
|
|
919
935
|
return;
|
|
920
936
|
}
|
|
921
937
|
if (textDisplayer === null) {
|
|
@@ -942,7 +958,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
942
958
|
break;
|
|
943
959
|
}
|
|
944
960
|
case "reset-text-displayer" /* CoreMessageType.ResetTextDisplayer */: {
|
|
945
|
-
if (((
|
|
961
|
+
if (((_22 = _this._currentContentInfo) === null || _22 === void 0 ? void 0 : _22.contentId) !== msgData.contentId) {
|
|
946
962
|
return;
|
|
947
963
|
}
|
|
948
964
|
if (textDisplayer === null) {
|
|
@@ -954,7 +970,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
954
970
|
break;
|
|
955
971
|
}
|
|
956
972
|
case "stop-text-displayer" /* CoreMessageType.StopTextDisplayer */: {
|
|
957
|
-
if (((
|
|
973
|
+
if (((_23 = _this._currentContentInfo) === null || _23 === void 0 ? void 0 : _23.contentId) !== msgData.contentId) {
|
|
958
974
|
return;
|
|
959
975
|
}
|
|
960
976
|
if (textDisplayer === null) {
|
|
@@ -982,7 +998,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
982
998
|
break;
|
|
983
999
|
case "needs-decipherability-flush" /* CoreMessageType.NeedsDecipherabilityFlush */:
|
|
984
1000
|
{
|
|
985
|
-
if (((
|
|
1001
|
+
if (((_24 = _this._currentContentInfo) === null || _24 === void 0 ? void 0 : _24.contentId) !== msgData.contentId) {
|
|
986
1002
|
return;
|
|
987
1003
|
}
|
|
988
1004
|
var keySystem = (0, decrypt_1.getKeySystemConfiguration)(mediaElement);
|
|
@@ -1004,7 +1020,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1004
1020
|
}
|
|
1005
1021
|
break;
|
|
1006
1022
|
case "segment-sink-store-update" /* CoreMessageType.SegmentSinkStoreUpdate */: {
|
|
1007
|
-
if (((
|
|
1023
|
+
if (((_25 = _this._currentContentInfo) === null || _25 === void 0 ? void 0 : _25.contentId) !== msgData.contentId) {
|
|
1008
1024
|
return;
|
|
1009
1025
|
}
|
|
1010
1026
|
var sinkObj = _this._awaitingRequests.pendingSinkMetrics.get(msgData.value.requestId);
|
|
@@ -1024,7 +1040,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1024
1040
|
// Already handled by prepare's handler
|
|
1025
1041
|
break;
|
|
1026
1042
|
case "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */: {
|
|
1027
|
-
if (((
|
|
1043
|
+
if (((_26 = _this._currentContentInfo) === null || _26 === void 0 ? void 0 : _26.contentId) !== msgData.contentId) {
|
|
1028
1044
|
return;
|
|
1029
1045
|
}
|
|
1030
1046
|
var tObj = _this._awaitingRequests.pendingThumbnailFetching.get(msgData.value.requestId);
|
|
@@ -1263,12 +1279,13 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1263
1279
|
features_1.default.htmlTextDisplayer !== null) ||
|
|
1264
1280
|
features_1.default.nativeTextDisplayer !== null);
|
|
1265
1281
|
};
|
|
1266
|
-
MediaSourceContentInitializer.prototype._reload = function (mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, position, autoPlay) {
|
|
1282
|
+
MediaSourceContentInitializer.prototype._reload = function (mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, streamEventsEmitter, position, autoPlay) {
|
|
1267
1283
|
var _this = this;
|
|
1268
1284
|
this._currentMediaSourceCanceller.cancel("Init MediaSource Reload");
|
|
1269
1285
|
this._currentMediaSourceCanceller = new task_canceller_1.default("Init MediaSource");
|
|
1270
1286
|
this._currentMediaSourceCanceller.linkToSignal(this._initCanceller.signal);
|
|
1271
1287
|
mediaSourceStatus.setValue(1 /* MediaSourceInitializationStatus.AttachNow */);
|
|
1288
|
+
streamEventsEmitter.pause();
|
|
1272
1289
|
this.trigger("reloadingMediaSource", { position: position, autoPlay: autoPlay });
|
|
1273
1290
|
mediaSourceStatus.onUpdate(function (status, stopListeningMSStatusUpdates) {
|
|
1274
1291
|
if (status !== 2 /* MediaSourceInitializationStatus.Attached */) {
|
|
@@ -1281,6 +1298,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1281
1298
|
mediaElement: mediaElement,
|
|
1282
1299
|
textDisplayer: textDisplayer,
|
|
1283
1300
|
playbackObserver: playbackObserver,
|
|
1301
|
+
streamEventsEmitter: streamEventsEmitter,
|
|
1284
1302
|
}, _this._currentMediaSourceCanceller.signal);
|
|
1285
1303
|
if (!_this._currentMediaSourceCanceller.isUsed() &&
|
|
1286
1304
|
corePlaybackObserver !== null &&
|
|
@@ -1333,9 +1351,10 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1333
1351
|
}
|
|
1334
1352
|
var _a = this._currentContentInfo, manifest = _a.manifest, mediaSourceInfo = _a.mediaSourceInfo;
|
|
1335
1353
|
var speed = this._settings.speed;
|
|
1336
|
-
var initialTime = parameters.initialTime, autoPlay = parameters.autoPlay, mediaElement = parameters.mediaElement, textDisplayer = parameters.textDisplayer, playbackObserver = parameters.playbackObserver;
|
|
1354
|
+
var initialTime = parameters.initialTime, autoPlay = parameters.autoPlay, mediaElement = parameters.mediaElement, textDisplayer = parameters.textDisplayer, playbackObserver = parameters.playbackObserver, streamEventsEmitter = parameters.streamEventsEmitter;
|
|
1337
1355
|
this._currentContentInfo.initialTime = initialTime;
|
|
1338
1356
|
this._currentContentInfo.autoPlay = autoPlay;
|
|
1357
|
+
streamEventsEmitter.pause(); // Only start polling events once ready to play
|
|
1339
1358
|
var _b = (0, initial_seek_and_play_1.default)({
|
|
1340
1359
|
mediaElement: mediaElement,
|
|
1341
1360
|
playbackObserver: playbackObserver,
|
|
@@ -1345,6 +1364,12 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1345
1364
|
isDirectfile: false,
|
|
1346
1365
|
}, cancelSignal), autoPlayResult = _b.autoPlayResult, initialPlayPerformed = _b.initialPlayPerformed;
|
|
1347
1366
|
this._currentContentInfo.initialPlayPerformed = initialPlayPerformed;
|
|
1367
|
+
initialPlayPerformed.onUpdate(function (isPerformed, stopListening) {
|
|
1368
|
+
if (isPerformed) {
|
|
1369
|
+
stopListening();
|
|
1370
|
+
streamEventsEmitter.resume(); // We can now start polling events
|
|
1371
|
+
}
|
|
1372
|
+
}, { clearSignal: cancelSignal, emitCurrentValue: true });
|
|
1348
1373
|
var corePlaybackObserver = (0, create_core_playback_observer_1.default)(playbackObserver, {
|
|
1349
1374
|
autoPlay: autoPlay,
|
|
1350
1375
|
initialPlayPerformed: initialPlayPerformed,
|
|
@@ -1375,24 +1400,6 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1375
1400
|
});
|
|
1376
1401
|
rebufferingController.start();
|
|
1377
1402
|
this._currentContentInfo.rebufferingController = rebufferingController;
|
|
1378
|
-
var currentContentInfo = this._currentContentInfo;
|
|
1379
|
-
initialPlayPerformed.onUpdate(function (isPerformed, stopListening) {
|
|
1380
|
-
if (isPerformed) {
|
|
1381
|
-
stopListening();
|
|
1382
|
-
var streamEventsEmitter_1 = new stream_events_emitter_1.default(manifest, playbackObserver);
|
|
1383
|
-
currentContentInfo.streamEventsEmitter = streamEventsEmitter_1;
|
|
1384
|
-
streamEventsEmitter_1.addEventListener("event", function (payload) {
|
|
1385
|
-
_this.trigger("streamEvent", payload);
|
|
1386
|
-
}, cancelSignal);
|
|
1387
|
-
streamEventsEmitter_1.addEventListener("eventSkip", function (payload) {
|
|
1388
|
-
_this.trigger("streamEventSkip", payload);
|
|
1389
|
-
}, cancelSignal);
|
|
1390
|
-
streamEventsEmitter_1.start();
|
|
1391
|
-
cancelSignal.register(function (err) {
|
|
1392
|
-
streamEventsEmitter_1.stop(err.reason);
|
|
1393
|
-
});
|
|
1394
|
-
}
|
|
1395
|
-
}, { clearSignal: cancelSignal, emitCurrentValue: true });
|
|
1396
1403
|
var _getSegmentSinkMetrics = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
1397
1404
|
var requestId;
|
|
1398
1405
|
var _this = this;
|
|
@@ -1522,6 +1529,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
1522
1529
|
mediaElement: parameters.mediaElement,
|
|
1523
1530
|
textDisplayer: parameters.textDisplayer,
|
|
1524
1531
|
playbackObserver: parameters.playbackObserver,
|
|
1532
|
+
streamEventsEmitter: parameters.streamEventsEmitter,
|
|
1525
1533
|
}, this._currentMediaSourceCanceller.signal);
|
|
1526
1534
|
if (this._currentMediaSourceCanceller.isUsed() || corePlaybackObserver === null) {
|
|
1527
1535
|
return true;
|
package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts
CHANGED
|
@@ -25,17 +25,42 @@ interface IStreamEventsEmitterEvent {
|
|
|
25
25
|
* Get events from manifest and emit each time an event has to be emitted
|
|
26
26
|
*/
|
|
27
27
|
export default class StreamEventsEmitter extends EventEmitter<IStreamEventsEmitterEvent> {
|
|
28
|
-
|
|
28
|
+
/** Regularly emit playback metrics such as the position. */
|
|
29
29
|
private _playbackObserver;
|
|
30
|
+
/** Current stream events tracked for the whole content. */
|
|
30
31
|
private _scheduledEventsRef;
|
|
32
|
+
/** Events currently considered active, to only emit their enter/exit once. */
|
|
31
33
|
private _eventsBeingPlayed;
|
|
34
|
+
/** Whether event evaluation is temporarily suspended, e.g. during a reload. */
|
|
35
|
+
private _isPaused;
|
|
36
|
+
/** Last observation used as comparison point for the next event check. */
|
|
37
|
+
private _previousObservation;
|
|
38
|
+
/** Cancels the current emitter lifecycle. */
|
|
32
39
|
private _canceller;
|
|
33
40
|
/**
|
|
34
|
-
* @param {Object} manifest
|
|
35
41
|
* @param {Object} playbackObserver
|
|
36
42
|
*/
|
|
37
|
-
constructor(
|
|
38
|
-
|
|
43
|
+
constructor(playbackObserver: IReadOnlyPlaybackObserver<IPlaybackObservation>);
|
|
44
|
+
/**
|
|
45
|
+
* Initialize the emitter for the given content manifest.
|
|
46
|
+
*
|
|
47
|
+
* The emitter starts in a paused state so the caller can resume it only once
|
|
48
|
+
* the corresponding media instance is actually ready.
|
|
49
|
+
* @param {Object} manifest
|
|
50
|
+
*/
|
|
51
|
+
start(manifest: IManifestMetadata): void;
|
|
52
|
+
/**
|
|
53
|
+
* Suspend event evaluation until `resume` has been called.
|
|
54
|
+
*
|
|
55
|
+
* To use when playback metrics should be temporarily ignored, for example
|
|
56
|
+
* while reloading a content.
|
|
57
|
+
*/
|
|
58
|
+
pause(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Resume event evaluation from the current playback state.
|
|
61
|
+
*/
|
|
62
|
+
resume(): void;
|
|
63
|
+
/** Refresh the tracked stream-event list after a manifest update. */
|
|
39
64
|
onManifestUpdate(man: IManifestMetadata): void;
|
|
40
65
|
/**
|
|
41
66
|
* @param {string | undefined} reason - Human-inspectable reason behind the
|
|
@@ -43,9 +68,14 @@ export default class StreamEventsEmitter extends EventEmitter<IStreamEventsEmitt
|
|
|
43
68
|
* inspection.
|
|
44
69
|
*/
|
|
45
70
|
stop(reason: string | undefined): void;
|
|
71
|
+
/**
|
|
72
|
+
* Construct observation object relied on by the `StreamEventsEmitted` by
|
|
73
|
+
* generating it from this instance's `PlaybackObserver`.
|
|
74
|
+
*/
|
|
75
|
+
private _constructObservation;
|
|
46
76
|
/**
|
|
47
77
|
* Examine playback situation from playback observations to emit stream events and
|
|
48
|
-
* prepare
|
|
78
|
+
* prepare `onExit` callbacks if needed.
|
|
49
79
|
* @param {Array.<Object>} scheduledEvents
|
|
50
80
|
* @param {Object} oldObservation
|
|
51
81
|
* @param {Object} newObservation
|
package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream_events_emitter.d.ts","sourceRoot":"","sources":["../../../../../../src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"stream_events_emitter.d.ts","sourceRoot":"","sources":["../../../../../../src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAK3D,OAAO,KAAK,EAEV,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB,UAAU,yBAAyB;IACjC,KAAK,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;IACxD,SAAS,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IACtF,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB,CAEzB;IACF,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB,CAGxB;IACF,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAAU;IAC3B,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB,CAKnB;IACT,6CAA6C;IAC7C,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;gBACS,gBAAgB,EAAE,yBAAyB,CAAC,oBAAoB,CAAC;IAe7E;;;;;;OAMG;IACI,KAAK,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAsE/C;;;;;OAKG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,MAAM,IAAI,IAAI;IAQrB,qEAAqE;IAC9D,gBAAgB,CAAC,GAAG,EAAE,iBAAiB;IAK9C;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAY7C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAiE1B"}
|
|
@@ -52,30 +52,39 @@ var refresh_scheduled_events_list_1 = require("./refresh_scheduled_events_list")
|
|
|
52
52
|
var StreamEventsEmitter = /** @class */ (function (_super) {
|
|
53
53
|
__extends(StreamEventsEmitter, _super);
|
|
54
54
|
/**
|
|
55
|
-
* @param {Object} manifest
|
|
56
55
|
* @param {Object} playbackObserver
|
|
57
56
|
*/
|
|
58
|
-
function StreamEventsEmitter(
|
|
57
|
+
function StreamEventsEmitter(playbackObserver) {
|
|
59
58
|
var _this = _super.call(this) || this;
|
|
60
|
-
_this._manifest = manifest;
|
|
61
59
|
_this._playbackObserver = playbackObserver;
|
|
62
60
|
_this._canceller = null;
|
|
63
61
|
_this._scheduledEventsRef = new reference_1.default([]);
|
|
64
62
|
_this._eventsBeingPlayed = new WeakMap();
|
|
63
|
+
_this._isPaused = true;
|
|
64
|
+
_this._previousObservation = null;
|
|
65
65
|
return _this;
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Initialize the emitter for the given content manifest.
|
|
69
|
+
*
|
|
70
|
+
* The emitter starts in a paused state so the caller can resume it only once
|
|
71
|
+
* the corresponding media instance is actually ready.
|
|
72
|
+
* @param {Object} manifest
|
|
73
|
+
*/
|
|
74
|
+
StreamEventsEmitter.prototype.start = function (manifest) {
|
|
68
75
|
var _this = this;
|
|
69
76
|
if (this._canceller !== null) {
|
|
70
77
|
return;
|
|
71
78
|
}
|
|
72
79
|
this._canceller = new task_canceller_1.default("StreamEventsEmitter");
|
|
73
80
|
var cancelSignal = this._canceller.signal;
|
|
74
|
-
|
|
81
|
+
this._isPaused = true;
|
|
82
|
+
this._previousObservation = null;
|
|
83
|
+
this._eventsBeingPlayed = new WeakMap();
|
|
75
84
|
var isPollingEvents = false;
|
|
76
85
|
var cancelCurrentPolling = new task_canceller_1.default("StreamEventsEmitter Polling");
|
|
77
86
|
cancelCurrentPolling.linkToSignal(cancelSignal);
|
|
78
|
-
this._scheduledEventsRef.setValue((0, refresh_scheduled_events_list_1.default)([],
|
|
87
|
+
this._scheduledEventsRef.setValue((0, refresh_scheduled_events_list_1.default)([], manifest));
|
|
79
88
|
this._scheduledEventsRef.onUpdate(function (_a) {
|
|
80
89
|
var scheduledEventsLength = _a.length;
|
|
81
90
|
if (scheduledEventsLength === 0) {
|
|
@@ -91,30 +100,49 @@ var StreamEventsEmitter = /** @class */ (function (_super) {
|
|
|
91
100
|
return;
|
|
92
101
|
}
|
|
93
102
|
isPollingEvents = true;
|
|
94
|
-
var oldObservation = constructObservation();
|
|
95
103
|
var checkStreamEvents = function () {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
104
|
+
if (_this._isPaused) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
var newObservation = _this._constructObservation();
|
|
108
|
+
if (_this._previousObservation === null) {
|
|
109
|
+
_this._previousObservation = newObservation;
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
_this._emitStreamEvents(_this._scheduledEventsRef.getValue(), _this._previousObservation, newObservation, cancelCurrentPolling.signal);
|
|
113
|
+
_this._previousObservation = newObservation;
|
|
99
114
|
};
|
|
100
115
|
var STREAM_EVENT_EMITTER_POLL_INTERVAL = config_1.default.getCurrent().STREAM_EVENT_EMITTER_POLL_INTERVAL;
|
|
101
116
|
var intervalId = setInterval(checkStreamEvents, STREAM_EVENT_EMITTER_POLL_INTERVAL);
|
|
102
|
-
|
|
117
|
+
_this._playbackObserver.listen(checkStreamEvents, {
|
|
103
118
|
includeLastObservation: false,
|
|
104
119
|
clearSignal: cancelCurrentPolling.signal,
|
|
105
120
|
});
|
|
106
121
|
cancelCurrentPolling.signal.register(function () {
|
|
107
122
|
clearInterval(intervalId);
|
|
108
123
|
});
|
|
109
|
-
function constructObservation() {
|
|
110
|
-
var _a;
|
|
111
|
-
var lastObservation = playbackObserver.getReference().getValue();
|
|
112
|
-
var currentTime = (_a = playbackObserver.getCurrentTime()) !== null && _a !== void 0 ? _a : playbackObserver.getReference().getValue().position.getPolled();
|
|
113
|
-
var isSeeking = lastObservation.seeking !== 0 /* SeekingState.None */;
|
|
114
|
-
return { currentTime: currentTime, isSeeking: isSeeking };
|
|
115
|
-
}
|
|
116
124
|
}, { emitCurrentValue: true, clearSignal: cancelSignal });
|
|
117
125
|
};
|
|
126
|
+
/**
|
|
127
|
+
* Suspend event evaluation until `resume` has been called.
|
|
128
|
+
*
|
|
129
|
+
* To use when playback metrics should be temporarily ignored, for example
|
|
130
|
+
* while reloading a content.
|
|
131
|
+
*/
|
|
132
|
+
StreamEventsEmitter.prototype.pause = function () {
|
|
133
|
+
this._isPaused = true;
|
|
134
|
+
this._previousObservation = null;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Resume event evaluation from the current playback state.
|
|
138
|
+
*/
|
|
139
|
+
StreamEventsEmitter.prototype.resume = function () {
|
|
140
|
+
this._isPaused = false;
|
|
141
|
+
// Take a snapshot right now to avoid comparing a post-reload position
|
|
142
|
+
// with a stale pre-reload observation.
|
|
143
|
+
this._previousObservation = this._constructObservation();
|
|
144
|
+
};
|
|
145
|
+
/** Refresh the tracked stream-event list after a manifest update. */
|
|
118
146
|
StreamEventsEmitter.prototype.onManifestUpdate = function (man) {
|
|
119
147
|
var prev = this._scheduledEventsRef.getValue();
|
|
120
148
|
this._scheduledEventsRef.setValue((0, refresh_scheduled_events_list_1.default)(prev, man));
|
|
@@ -128,11 +156,24 @@ var StreamEventsEmitter = /** @class */ (function (_super) {
|
|
|
128
156
|
if (this._canceller !== null) {
|
|
129
157
|
this._canceller.cancel(reason !== null && reason !== void 0 ? reason : "StreamEventsEmitter stop");
|
|
130
158
|
this._canceller = null;
|
|
159
|
+
this._previousObservation = null;
|
|
160
|
+
this._eventsBeingPlayed = new WeakMap();
|
|
131
161
|
}
|
|
132
162
|
};
|
|
163
|
+
/**
|
|
164
|
+
* Construct observation object relied on by the `StreamEventsEmitted` by
|
|
165
|
+
* generating it from this instance's `PlaybackObserver`.
|
|
166
|
+
*/
|
|
167
|
+
StreamEventsEmitter.prototype._constructObservation = function () {
|
|
168
|
+
var _a;
|
|
169
|
+
var lastObservation = this._playbackObserver.getReference().getValue();
|
|
170
|
+
var currentTime = (_a = this._playbackObserver.getCurrentTime()) !== null && _a !== void 0 ? _a : this._playbackObserver.getReference().getValue().position.getPolled();
|
|
171
|
+
var isSeeking = lastObservation.seeking !== 0 /* SeekingState.None */;
|
|
172
|
+
return { currentTime: currentTime, isSeeking: isSeeking };
|
|
173
|
+
};
|
|
133
174
|
/**
|
|
134
175
|
* Examine playback situation from playback observations to emit stream events and
|
|
135
|
-
* prepare
|
|
176
|
+
* prepare `onExit` callbacks if needed.
|
|
136
177
|
* @param {Array.<Object>} scheduledEvents
|
|
137
178
|
* @param {Object} oldObservation
|
|
138
179
|
* @param {Object} newObservation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render_thumbnail.d.ts","sourceRoot":"","sources":["../../../src/main_thread/render_thumbnail.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,sBAAsB,GAAG,IAAI,EAC3C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"render_thumbnail.d.ts","sourceRoot":"","sources":["../../../src/main_thread/render_thumbnail.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,sBAAsB,GAAG,IAAI,EAC3C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAmNf"}
|
|
@@ -225,6 +225,10 @@ function renderThumbnail(contentInfos, options) {
|
|
|
225
225
|
error = new ThumbnailRenderingError("ABORTED", "Thumbnail rendering has been aborted");
|
|
226
226
|
throw error;
|
|
227
227
|
}
|
|
228
|
+
if (srcError_1 instanceof ThumbnailRenderingError) {
|
|
229
|
+
onFinished();
|
|
230
|
+
throw srcError_1;
|
|
231
|
+
}
|
|
228
232
|
formattedErr = (0, errors_1.formatError)(srcError_1, {
|
|
229
233
|
defaultCode: "NONE",
|
|
230
234
|
defaultReason: "Unknown error",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_element_tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/media_element_tracks_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AAEH,OAAO,KAAK,EAMV,aAAa,EACd,MAAM,0CAA0C,CAAC;AAGlD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAIrD,qDAAqD;AACrD,UAAU,8BAA8B;IACtC,0BAA0B,EAAE,oBAAoB,EAAE,CAAC;IACnD,0BAA0B,EAAE,oBAAoB,EAAE,CAAC;IACnD,yBAAyB,EAAE,mBAAmB,EAAE,CAAC;IACjD,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AA8HD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,YAAY,CAAC,8BAA8B,CAAC;IAC/F,wEAAwE;IACxE,OAAO,CAAC,YAAY,CAGjB;IACH,uEAAuE;IACvE,OAAO,CAAC,WAAW,CAAuD;IAC1E,wEAAwE;IACxE,OAAO,CAAC,YAAY,CAGjB;IAEH,0CAA0C;IAC1C,OAAO,CAAC,4BAA4B,CAAuC;IAC3E,0CAA0C;IAC1C,OAAO,CAAC,4BAA4B,CAAuC;IAC3E,yCAAyC;IACzC,OAAO,CAAC,2BAA2B,CAA+B;IAElE,gEAAgE;IAChE,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,gEAAgE;IAChE,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,+DAA+D;IAC/D,OAAO,CAAC,iBAAiB,CAAmC;IAE5D;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB,CAAuC;IAElE;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAA+B;IAEzD;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB,CAAuC;gBAEtD,YAAY,EAAE,aAAa;IA6BvC;;;;;OAKG;IACI,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYpD;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAK/B;;;;;OAKG;IACI,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBnD;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAKhC;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAKhC;;;;;OAKG;IACI,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYpD;;;;;OAKG;IACI,mBAAmB,IAAI,WAAW,GAAG,IAAI,GAAG,SAAS;IAO5D;;;;;OAKG;IACI,kBAAkB,IAAI,UAAU,GAAG,IAAI,GAAG,SAAS;IAO1D;;;;;OAKG;IACI,mBAAmB,IAAI,WAAW,GAAG,IAAI,GAAG,SAAS;IAO5D;;;OAGG;IACI,uBAAuB,IAAI,oBAAoB,EAAE;IAaxD;;;OAGG;IACI,sBAAsB,IAAI,mBAAmB,EAAE;IActD;;;OAGG;IACI,uBAAuB,IAAI,oBAAoB,EAAE;IAUxD;;OAEG;IACI,OAAO,IAAI,IAAI;IAsBtB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAmBtC;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IAsBrC;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAiBtC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;
|
|
1
|
+
{"version":3,"file":"media_element_tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/media_element_tracks_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AAEH,OAAO,KAAK,EAMV,aAAa,EACd,MAAM,0CAA0C,CAAC;AAGlD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAIrD,qDAAqD;AACrD,UAAU,8BAA8B;IACtC,0BAA0B,EAAE,oBAAoB,EAAE,CAAC;IACnD,0BAA0B,EAAE,oBAAoB,EAAE,CAAC;IACnD,yBAAyB,EAAE,mBAAmB,EAAE,CAAC;IACjD,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AA8HD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,YAAY,CAAC,8BAA8B,CAAC;IAC/F,wEAAwE;IACxE,OAAO,CAAC,YAAY,CAGjB;IACH,uEAAuE;IACvE,OAAO,CAAC,WAAW,CAAuD;IAC1E,wEAAwE;IACxE,OAAO,CAAC,YAAY,CAGjB;IAEH,0CAA0C;IAC1C,OAAO,CAAC,4BAA4B,CAAuC;IAC3E,0CAA0C;IAC1C,OAAO,CAAC,4BAA4B,CAAuC;IAC3E,yCAAyC;IACzC,OAAO,CAAC,2BAA2B,CAA+B;IAElE,gEAAgE;IAChE,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,gEAAgE;IAChE,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,+DAA+D;IAC/D,OAAO,CAAC,iBAAiB,CAAmC;IAE5D;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB,CAAuC;IAElE;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAA+B;IAEzD;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB,CAAuC;gBAEtD,YAAY,EAAE,aAAa;IA6BvC;;;;;OAKG;IACI,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYpD;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAK/B;;;;;OAKG;IACI,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBnD;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAKhC;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAKhC;;;;;OAKG;IACI,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYpD;;;;;OAKG;IACI,mBAAmB,IAAI,WAAW,GAAG,IAAI,GAAG,SAAS;IAO5D;;;;;OAKG;IACI,kBAAkB,IAAI,UAAU,GAAG,IAAI,GAAG,SAAS;IAO1D;;;;;OAKG;IACI,mBAAmB,IAAI,WAAW,GAAG,IAAI,GAAG,SAAS;IAO5D;;;OAGG;IACI,uBAAuB,IAAI,oBAAoB,EAAE;IAaxD;;;OAGG;IACI,sBAAsB,IAAI,mBAAmB,EAAE;IActD;;;OAGG;IACI,uBAAuB,IAAI,oBAAoB,EAAE;IAUxD;;OAEG;IACI,OAAO,IAAI,IAAI;IAsBtB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAmBtC;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IAsBrC;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAiBtC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IA8JpC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;CAMnC"}
|
|
@@ -510,6 +510,7 @@ var MediaElementTracksStore = /** @class */ (function (_super) {
|
|
|
510
510
|
var newAudioTracks = createAudioTracks(_this._nativeAudioTracks);
|
|
511
511
|
if (areTrackArraysDifferent(_this._audioTracks, newAudioTracks)) {
|
|
512
512
|
_this._audioTracks = newAudioTracks;
|
|
513
|
+
_this._setPreviouslyLockedAudioTrack();
|
|
513
514
|
_this.trigger("availableAudioTracksChange", _this.getAvailableAudioTracks());
|
|
514
515
|
var chosenAudioTrack = _this._getCurrentAudioTrack();
|
|
515
516
|
if ((chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.nativeTrack) !== _this._lastEmittedNativeAudioTrack) {
|
|
@@ -271,7 +271,7 @@ export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
|
|
|
271
271
|
* Period.
|
|
272
272
|
*
|
|
273
273
|
* Returns `null` is the the current audio track is disabled or not
|
|
274
|
-
* set yet.
|
|
274
|
+
* set yet.
|
|
275
275
|
*
|
|
276
276
|
* Returns `undefined` if the given Period's id is not currently found in the
|
|
277
277
|
* `TracksStore`. The cause being most probably that the corresponding
|
|
@@ -979,7 +979,7 @@ var TracksStore = /** @class */ (function (_super) {
|
|
|
979
979
|
* Period.
|
|
980
980
|
*
|
|
981
981
|
* Returns `null` is the the current audio track is disabled or not
|
|
982
|
-
* set yet.
|
|
982
|
+
* set yet.
|
|
983
983
|
*
|
|
984
984
|
* Returns `undefined` if the given Period's id is not currently found in the
|
|
985
985
|
* `TracksStore`. The cause being most probably that the corresponding
|
|
@@ -21,15 +21,17 @@ export interface IISOBMFFPSSHInfo {
|
|
|
21
21
|
data: Uint8Array<ArrayBuffer>;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
24
|
+
* Return every `pssh` box from an ISOBMFF segment.
|
|
25
|
+
*
|
|
26
|
+
* If the current device has no issue with it, also replace them by `free` boxes.
|
|
26
27
|
* Useful to manually manage encryption while avoiding the round-trip with the
|
|
27
28
|
* browser's encrypted event.
|
|
29
|
+
*
|
|
28
30
|
* @param {Uint8Array} data - the ISOBMFF segment
|
|
29
31
|
* @returns {Array.<Uint8Array>} - The extracted PSSH boxes. In the order they
|
|
30
32
|
* are encountered.
|
|
31
33
|
*/
|
|
32
|
-
export default function
|
|
34
|
+
export default function extractPssh(data: Uint8Array<ArrayBuffer>): IISOBMFFPSSHInfo[];
|
|
33
35
|
/**
|
|
34
36
|
* Parse systemId from a "pssh" box into an hexadecimal string.
|
|
35
37
|
* `undefined` if we could not extract a systemId.
|
|
@@ -39,4 +41,4 @@ export default function takePSSHOut(data: Uint8Array<ArrayBuffer>): IISOBMFFPSSH
|
|
|
39
41
|
* @returns {string|undefined}
|
|
40
42
|
*/
|
|
41
43
|
export declare function getPsshSystemID(buff: Uint8Array, initialDataOffset: number): string | undefined;
|
|
42
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=extract_pssh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract_pssh.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/extract_pssh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,gBAAgB,EAAE,CAmCrF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,iBAAiB,EAAE,MAAM,GACxB,MAAM,GAAG,SAAS,CAWpB"}
|