rx-player 3.28.1-dev.2022083000 → 3.29.0-dev.2022090500
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 +11 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/event_listeners.d.ts +18 -2
- package/dist/_esm5.processed/compat/event_listeners.js +64 -2
- package/dist/_esm5.processed/compat/on_height_width_change.d.ts +5 -4
- package/dist/_esm5.processed/compat/on_height_width_change.js +43 -34
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +12 -2
- package/dist/_esm5.processed/core/api/playback_observer.js +27 -12
- package/dist/_esm5.processed/core/api/public_api.js +14 -14
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +7 -0
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +10 -2
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +8 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +10 -4
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +7 -0
- package/dist/_esm5.processed/core/init/initialize_directfile.js +1 -1
- package/dist/_esm5.processed/core/init/load_on_media_source.js +1 -1
- package/dist/_esm5.processed/core/init/stall_avoider.d.ts +4 -2
- package/dist/_esm5.processed/core/init/stall_avoider.js +32 -26
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +12 -6
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +142 -78
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +18 -16
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +53 -41
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +6 -5
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +37 -39
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +23 -22
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +84 -72
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +6 -12
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +33 -43
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +12 -9
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +7 -6
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +17 -10
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +20 -9
- package/dist/_esm5.processed/core/stream/period/period_stream.js +25 -14
- package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.d.ts +4 -7
- package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.js +80 -23
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.d.ts +5 -4
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +78 -26
- package/dist/_esm5.processed/core/stream/representation/get_buffer_status.js +7 -3
- package/dist/_esm5.processed/core/stream/representation/push_init_segment.js +7 -1
- package/dist/_esm5.processed/core/stream/representation/push_media_segment.js +7 -1
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +15 -8
- package/dist/_esm5.processed/default_config.js +1 -1
- package/dist/_esm5.processed/errors/custom_loader_error.d.ts +3 -2
- package/dist/_esm5.processed/errors/custom_loader_error.js +3 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/get_initialized_source_buffer.js +5 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/push_data.js +5 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +9 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.js +3 -1
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +4 -3
- package/dist/_esm5.processed/public_types.d.ts +22 -3
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +2 -2
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +3 -2
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +3 -1
- package/dist/_esm5.processed/transports/dash/init_segment_loader.d.ts +3 -2
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +12 -6
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.d.ts +3 -2
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +3 -2
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +6 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +3 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +12 -9
- package/dist/_esm5.processed/transports/dash/text_loader.js +6 -3
- package/dist/_esm5.processed/transports/local/pipelines.d.ts +2 -2
- package/dist/_esm5.processed/transports/local/pipelines.js +6 -6
- package/dist/_esm5.processed/transports/local/segment_loader.d.ts +3 -2
- package/dist/_esm5.processed/transports/local/segment_loader.js +4 -3
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +5 -2
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +15 -10
- package/dist/_esm5.processed/transports/smooth/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +18 -14
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +8 -6
- package/dist/_esm5.processed/transports/types.d.ts +25 -2
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +9 -6
- package/dist/_esm5.processed/utils/request/fetch.js +7 -8
- package/dist/_esm5.processed/utils/request/xhr.d.ts +1 -1
- package/dist/_esm5.processed/utils/request/xhr.js +28 -14
- package/dist/_esm5.processed/utils/task_canceller.d.ts +1 -2
- package/dist/_esm5.processed/utils/task_canceller.js +1 -2
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +1116 -695
- package/dist/rx-player.min.js +1 -1
- package/package.json +7 -7
- package/sonar-project.properties +1 -1
- package/src/compat/event_listeners.ts +86 -1
- package/src/compat/on_height_width_change.ts +48 -49
- package/src/core/api/playback_observer.ts +34 -14
- package/src/core/api/public_api.ts +23 -18
- package/src/core/fetchers/manifest/manifest_fetcher.ts +20 -2
- package/src/core/fetchers/segment/segment_fetcher.ts +23 -3
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +7 -0
- package/src/core/init/initialize_directfile.ts +1 -1
- package/src/core/init/load_on_media_source.ts +1 -0
- package/src/core/init/stall_avoider.ts +40 -26
- package/src/core/segment_buffers/garbage_collector.ts +55 -47
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +92 -70
- package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +37 -42
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +103 -105
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +35 -46
- package/src/core/segment_buffers/implementations/types.ts +22 -9
- package/src/core/segment_buffers/segment_buffers_store.ts +23 -14
- package/src/core/stream/orchestrator/stream_orchestrator.ts +31 -12
- package/src/core/stream/period/period_stream.ts +31 -18
- package/src/core/stream/representation/append_segment_to_buffer.ts +27 -42
- package/src/core/stream/representation/force_garbage_collection.ts +28 -32
- package/src/core/stream/representation/get_buffer_status.ts +7 -3
- package/src/core/stream/representation/push_init_segment.ts +12 -6
- package/src/core/stream/representation/push_media_segment.ts +12 -6
- package/src/core/stream/representation/representation_stream.ts +11 -5
- package/src/default_config.ts +17 -17
- package/src/errors/custom_loader_error.ts +3 -2
- package/src/experimental/tools/VideoThumbnailLoader/get_initialized_source_buffer.ts +7 -2
- package/src/experimental/tools/VideoThumbnailLoader/push_data.ts +6 -2
- package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +10 -2
- package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +3 -1
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +4 -3
- package/src/public_types.ts +28 -4
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +2 -2
- package/src/transports/dash/image_pipelines.ts +4 -0
- package/src/transports/dash/init_segment_loader.ts +8 -0
- package/src/transports/dash/low_latency_segment_loader.ts +4 -0
- package/src/transports/dash/manifest_parser.ts +4 -0
- package/src/transports/dash/segment_loader.ts +21 -5
- package/src/transports/dash/text_loader.ts +7 -2
- package/src/transports/local/pipelines.ts +7 -5
- package/src/transports/local/segment_loader.ts +4 -2
- package/src/transports/metaplaylist/manifest_loader.ts +9 -2
- package/src/transports/metaplaylist/pipelines.ts +16 -6
- package/src/transports/smooth/pipelines.ts +17 -9
- package/src/transports/smooth/segment_loader.ts +8 -0
- package/src/transports/types.ts +27 -0
- package/src/transports/utils/call_custom_manifest_loader.ts +8 -2
- package/src/transports/utils/generate_manifest_loader.ts +18 -5
- package/src/utils/request/fetch.ts +7 -8
- package/src/utils/request/xhr.ts +31 -15
- package/src/utils/task_canceller.ts +1 -2
package/dist/rx-player.js
CHANGED
|
@@ -1395,7 +1395,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1395
1395
|
"it": function() { return /* binding */ getVideoVisibilityRef; },
|
|
1396
1396
|
"O0": function() { return /* binding */ getVideoWidthRef; },
|
|
1397
1397
|
"Oh": function() { return /* binding */ onEncrypted$; },
|
|
1398
|
-
"
|
|
1398
|
+
"M4": function() { return /* binding */ onEnded; },
|
|
1399
1399
|
"Q1": function() { return /* binding */ onFullscreenChange$; },
|
|
1400
1400
|
"GV": function() { return /* binding */ onKeyAdded$; },
|
|
1401
1401
|
"Xe": function() { return /* binding */ onKeyError$; },
|
|
@@ -1403,8 +1403,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1403
1403
|
"eX": function() { return /* binding */ onKeyStatusesChange$; },
|
|
1404
1404
|
"K4": function() { return /* binding */ onLoadedMetadata$; },
|
|
1405
1405
|
"gg": function() { return /* binding */ onRemoveSourceBuffers$; },
|
|
1406
|
-
"
|
|
1407
|
-
"
|
|
1406
|
+
"bQ": function() { return /* binding */ onSeeked; },
|
|
1407
|
+
"Q$": function() { return /* binding */ onSeeking; },
|
|
1408
1408
|
"UG": function() { return /* binding */ onSourceClose$; },
|
|
1409
1409
|
"ep": function() { return /* binding */ onSourceEnded$; },
|
|
1410
1410
|
"ym": function() { return /* binding */ onSourceOpen$; },
|
|
@@ -1412,7 +1412,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1412
1412
|
"_E": function() { return /* binding */ onUpdate$; }
|
|
1413
1413
|
});
|
|
1414
1414
|
|
|
1415
|
-
// UNUSED EXPORTS: addEventListener, onTimeUpdate$
|
|
1415
|
+
// UNUSED EXPORTS: addEventListener, onEnded$, onSeeked$, onSeeking$, onTimeUpdate$
|
|
1416
1416
|
|
|
1417
1417
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js
|
|
1418
1418
|
var fromEvent = __webpack_require__(2401);
|
|
@@ -1521,6 +1521,53 @@ function eventPrefixed(eventNames, prefixes) {
|
|
|
1521
1521
|
}));
|
|
1522
1522
|
}, []);
|
|
1523
1523
|
}
|
|
1524
|
+
/**
|
|
1525
|
+
* Returns a function allowing to add event listeners for particular event(s)
|
|
1526
|
+
* optionally automatically adding browser prefixes if needed.
|
|
1527
|
+
* @param {Array.<string>} eventNames - The event(s) to listen to. If multiple
|
|
1528
|
+
* events are set, the event listener will be triggered when any of them emits.
|
|
1529
|
+
* @returns {Function} - Returns function allowing to easily add a callback to
|
|
1530
|
+
* be triggered when that event is emitted on a given event target.
|
|
1531
|
+
*/
|
|
1532
|
+
|
|
1533
|
+
|
|
1534
|
+
function createCompatibleEventListener(eventNames) {
|
|
1535
|
+
var mem;
|
|
1536
|
+
var prefixedEvents = eventPrefixed(eventNames);
|
|
1537
|
+
return function (element, listener, cancelSignal) {
|
|
1538
|
+
if (cancelSignal.isCancelled) {
|
|
1539
|
+
return;
|
|
1540
|
+
} // if the element is a HTMLElement we can detect
|
|
1541
|
+
// the supported event, and memoize it in `mem`
|
|
1542
|
+
|
|
1543
|
+
|
|
1544
|
+
if (element instanceof HTMLElement) {
|
|
1545
|
+
if (typeof mem === "undefined") {
|
|
1546
|
+
mem = findSupportedEvent(element, prefixedEvents);
|
|
1547
|
+
}
|
|
1548
|
+
|
|
1549
|
+
if ((0,is_non_empty_string/* default */.Z)(mem)) {
|
|
1550
|
+
element.addEventListener(mem, listener);
|
|
1551
|
+
cancelSignal.register(function () {
|
|
1552
|
+
if (mem !== undefined) {
|
|
1553
|
+
element.removeEventListener(mem, listener);
|
|
1554
|
+
}
|
|
1555
|
+
});
|
|
1556
|
+
} else {
|
|
1557
|
+
if (false) {}
|
|
1558
|
+
|
|
1559
|
+
return;
|
|
1560
|
+
}
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
prefixedEvents.forEach(function (eventName) {
|
|
1564
|
+
element.addEventListener(eventName, listener);
|
|
1565
|
+
cancelSignal.register(function () {
|
|
1566
|
+
element.removeEventListener(eventName, listener);
|
|
1567
|
+
});
|
|
1568
|
+
});
|
|
1569
|
+
};
|
|
1570
|
+
}
|
|
1524
1571
|
/**
|
|
1525
1572
|
* @param {Array.<string>} eventNames
|
|
1526
1573
|
* @param {Array.<string>|undefined} prefixes
|
|
@@ -1649,7 +1696,8 @@ function getVideoWidthFromPIPWindow(mediaElement, pipWindow) {
|
|
|
1649
1696
|
}
|
|
1650
1697
|
/**
|
|
1651
1698
|
* Emit when video enters and leaves Picture-In-Picture mode.
|
|
1652
|
-
* @param {HTMLMediaElement}
|
|
1699
|
+
* @param {HTMLMediaElement} elt
|
|
1700
|
+
* @param {Object} stopListening
|
|
1653
1701
|
* @returns {Observable}
|
|
1654
1702
|
*/
|
|
1655
1703
|
|
|
@@ -1911,6 +1959,24 @@ var onKeyError$ = compatibleListener(["keyerror", "error"]);
|
|
|
1911
1959
|
*/
|
|
1912
1960
|
|
|
1913
1961
|
var onKeyStatusesChange$ = compatibleListener(["keystatuseschange"]);
|
|
1962
|
+
/**
|
|
1963
|
+
* @param {HTMLMediaElement} mediaElement
|
|
1964
|
+
* @returns {Observable}
|
|
1965
|
+
*/
|
|
1966
|
+
|
|
1967
|
+
var onSeeking = createCompatibleEventListener(["seeking"]);
|
|
1968
|
+
/**
|
|
1969
|
+
* @param {HTMLMediaElement} mediaElement
|
|
1970
|
+
* @returns {Observable}
|
|
1971
|
+
*/
|
|
1972
|
+
|
|
1973
|
+
var onSeeked = createCompatibleEventListener(["seeked"]);
|
|
1974
|
+
/**
|
|
1975
|
+
* @param {HTMLMediaElement} mediaElement
|
|
1976
|
+
* @returns {Observable}
|
|
1977
|
+
*/
|
|
1978
|
+
|
|
1979
|
+
var onEnded = createCompatibleEventListener(["ended"]);
|
|
1914
1980
|
/**
|
|
1915
1981
|
* Utilitary function allowing to add an event listener and remove it
|
|
1916
1982
|
* automatically once the given `CancellationSignal` emits.
|
|
@@ -2492,7 +2558,7 @@ var DEFAULT_CONFIG = {
|
|
|
2492
2558
|
* small enough so this (arguably rare) situation won't lead to too much
|
|
2493
2559
|
* waiting time.
|
|
2494
2560
|
*/
|
|
2495
|
-
FORCE_DISCONTINUITY_SEEK_DELAY:
|
|
2561
|
+
FORCE_DISCONTINUITY_SEEK_DELAY: 3000,
|
|
2496
2562
|
|
|
2497
2563
|
/**
|
|
2498
2564
|
* Ratio used to know if an already loaded segment should be re-buffered.
|
|
@@ -8178,8 +8244,8 @@ var empty = __webpack_require__(1545);
|
|
|
8178
8244
|
var of = __webpack_require__(2817);
|
|
8179
8245
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js
|
|
8180
8246
|
var takeUntil = __webpack_require__(3505);
|
|
8181
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js
|
|
8182
|
-
var concat = __webpack_require__(
|
|
8247
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js + 1 modules
|
|
8248
|
+
var concat = __webpack_require__(2034);
|
|
8183
8249
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/tap.js
|
|
8184
8250
|
var tap = __webpack_require__(2006);
|
|
8185
8251
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js
|
|
@@ -10563,8 +10629,8 @@ var shareReplay = __webpack_require__(8515);
|
|
|
10563
10629
|
var mergeMap = __webpack_require__(7877);
|
|
10564
10630
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/startWith.js
|
|
10565
10631
|
var startWith = __webpack_require__(6108);
|
|
10566
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js
|
|
10567
|
-
var concat = __webpack_require__(
|
|
10632
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js + 1 modules
|
|
10633
|
+
var concat = __webpack_require__(2034);
|
|
10568
10634
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/defer.js
|
|
10569
10635
|
var defer = __webpack_require__(9917);
|
|
10570
10636
|
// EXTERNAL MODULE: ./src/utils/cast_to_observable.ts
|
|
@@ -11016,7 +11082,7 @@ function initializeDirectfileContent(_ref) {
|
|
|
11016
11082
|
* events when it cannot, as well as "unstalled" events when it get out of one.
|
|
11017
11083
|
*/
|
|
11018
11084
|
|
|
11019
|
-
var stallAvoider$ = (0,stall_avoider/* default */.Z)(playbackObserver, null, empty/* EMPTY */.E, empty/* EMPTY */.E);
|
|
11085
|
+
var stallAvoider$ = (0,stall_avoider/* default */.Z)(playbackObserver, null, speed, empty/* EMPTY */.E, empty/* EMPTY */.E);
|
|
11020
11086
|
/**
|
|
11021
11087
|
* Emit a "loaded" events once the initial play has been performed and the
|
|
11022
11088
|
* media can begin playback.
|
|
@@ -11319,13 +11385,14 @@ var EPSILON = 1 / 60;
|
|
|
11319
11385
|
* encountered and exited.
|
|
11320
11386
|
* @param {object} playbackObserver - emit the current playback conditions.
|
|
11321
11387
|
* @param {Object} manifest - The Manifest of the currently-played content.
|
|
11388
|
+
* @param {Object} speed - The last speed set by the user
|
|
11389
|
+
* @param {Observable} lockedStream$
|
|
11322
11390
|
* @param {Observable} discontinuityUpdate$ - Observable emitting encountered
|
|
11323
11391
|
* discontinuities for loaded Period and buffer types.
|
|
11324
|
-
* @param {Function} setCurrentTime
|
|
11325
11392
|
* @returns {Observable}
|
|
11326
11393
|
*/
|
|
11327
11394
|
|
|
11328
|
-
function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUpdate$) {
|
|
11395
|
+
function StallAvoider(playbackObserver, manifest, speed, lockedStream$, discontinuityUpdate$) {
|
|
11329
11396
|
var initialDiscontinuitiesStore = [];
|
|
11330
11397
|
/**
|
|
11331
11398
|
* Emit every known audio and video buffer discontinuities in chronological
|
|
@@ -11374,11 +11441,9 @@ function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUp
|
|
|
11374
11441
|
var lockedStreamEvt = _ref2[0],
|
|
11375
11442
|
observation = _ref2[1];
|
|
11376
11443
|
|
|
11377
|
-
var _a;
|
|
11378
|
-
// might not want to seek in that case?
|
|
11379
|
-
|
|
11444
|
+
var _a;
|
|
11380
11445
|
|
|
11381
|
-
if (!observation.rebuffering || observation.paused || lockedStreamEvt.bufferType !== "audio" && lockedStreamEvt.bufferType !== "video") {
|
|
11446
|
+
if (!observation.rebuffering || observation.paused || speed.getValue() <= 0 || lockedStreamEvt.bufferType !== "audio" && lockedStreamEvt.bufferType !== "video") {
|
|
11382
11447
|
return;
|
|
11383
11448
|
}
|
|
11384
11449
|
|
|
@@ -11400,6 +11465,9 @@ function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUp
|
|
|
11400
11465
|
var stall$ = playbackObserver.getReference().asObservable().pipe((0,withLatestFrom/* withLatestFrom */.M)(discontinuitiesStore$), (0,map/* map */.U)(function (_ref3) {
|
|
11401
11466
|
var observation = _ref3[0],
|
|
11402
11467
|
discontinuitiesStore = _ref3[1];
|
|
11468
|
+
|
|
11469
|
+
var _a;
|
|
11470
|
+
|
|
11403
11471
|
var buffered = observation.buffered,
|
|
11404
11472
|
position = observation.position,
|
|
11405
11473
|
readyState = observation.readyState,
|
|
@@ -11413,19 +11481,28 @@ function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUp
|
|
|
11413
11481
|
UNFREEZING_SEEK_DELAY = _config$getCurrent.UNFREEZING_SEEK_DELAY,
|
|
11414
11482
|
UNFREEZING_DELTA_POSITION = _config$getCurrent.UNFREEZING_DELTA_POSITION;
|
|
11415
11483
|
|
|
11416
|
-
if (
|
|
11484
|
+
if (!observation.seeking && is_seeking_approximate && ignoredStallTimeStamp === null && lastSeekingPosition !== null && observation.position < lastSeekingPosition) {
|
|
11485
|
+
log/* default.debug */.Z.debug("Init: the device appeared to have seeked back by itself.");
|
|
11417
11486
|
var now = performance.now();
|
|
11487
|
+
ignoredStallTimeStamp = now;
|
|
11488
|
+
}
|
|
11489
|
+
|
|
11490
|
+
lastSeekingPosition = observation.seeking ? Math.max((_a = observation.pendingInternalSeek) !== null && _a !== void 0 ? _a : 0, observation.position) : null;
|
|
11491
|
+
|
|
11492
|
+
if (freezing !== null) {
|
|
11493
|
+
var _now = performance.now();
|
|
11494
|
+
|
|
11418
11495
|
var referenceTimestamp = prevFreezingState === null ? freezing.timestamp : prevFreezingState.attemptTimestamp;
|
|
11419
11496
|
|
|
11420
|
-
if (
|
|
11497
|
+
if (_now - referenceTimestamp > UNFREEZING_SEEK_DELAY) {
|
|
11421
11498
|
log/* default.warn */.Z.warn("Init: trying to seek to un-freeze player");
|
|
11422
11499
|
playbackObserver.setCurrentTime(playbackObserver.getCurrentTime() + UNFREEZING_DELTA_POSITION);
|
|
11423
11500
|
prevFreezingState = {
|
|
11424
|
-
attemptTimestamp:
|
|
11501
|
+
attemptTimestamp: _now
|
|
11425
11502
|
};
|
|
11426
11503
|
}
|
|
11427
11504
|
|
|
11428
|
-
if (
|
|
11505
|
+
if (_now - freezing.timestamp > FREEZING_STALLED_DELAY) {
|
|
11429
11506
|
return {
|
|
11430
11507
|
type: "stalled",
|
|
11431
11508
|
value: "freezing"
|
|
@@ -11442,7 +11519,7 @@ function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUp
|
|
|
11442
11519
|
var reason;
|
|
11443
11520
|
|
|
11444
11521
|
if (observation.seeking) {
|
|
11445
|
-
reason = observation.
|
|
11522
|
+
reason = observation.pendingInternalSeek !== null ? "internal-seek" : "seeking";
|
|
11446
11523
|
} else {
|
|
11447
11524
|
reason = "not-ready";
|
|
11448
11525
|
}
|
|
@@ -11461,31 +11538,20 @@ function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUp
|
|
|
11461
11538
|
// internally by the player to when its due to a regular user seek.
|
|
11462
11539
|
|
|
11463
11540
|
|
|
11464
|
-
var stalledReason = rebuffering.reason === "seeking" && observation.
|
|
11465
|
-
|
|
11466
|
-
if (observation.seeking) {
|
|
11467
|
-
lastSeekingPosition = observation.position;
|
|
11468
|
-
} else if (lastSeekingPosition !== null) {
|
|
11469
|
-
var _now = performance.now();
|
|
11470
|
-
|
|
11471
|
-
if (ignoredStallTimeStamp === null) {
|
|
11472
|
-
ignoredStallTimeStamp = _now;
|
|
11473
|
-
}
|
|
11541
|
+
var stalledReason = rebuffering.reason === "seeking" && observation.pendingInternalSeek !== null ? "internal-seek" : rebuffering.reason;
|
|
11474
11542
|
|
|
11475
|
-
|
|
11476
|
-
|
|
11543
|
+
if (ignoredStallTimeStamp !== null) {
|
|
11544
|
+
var _now2 = performance.now();
|
|
11477
11545
|
|
|
11478
|
-
|
|
11479
|
-
|
|
11480
|
-
|
|
11481
|
-
|
|
11482
|
-
|
|
11483
|
-
}
|
|
11484
|
-
|
|
11485
|
-
|
|
11546
|
+
if (_now2 - ignoredStallTimeStamp < FORCE_DISCONTINUITY_SEEK_DELAY) {
|
|
11547
|
+
log/* default.debug */.Z.debug("Init: letting the device get out of a stall by itself");
|
|
11548
|
+
return {
|
|
11549
|
+
type: "stalled",
|
|
11550
|
+
value: stalledReason
|
|
11551
|
+
};
|
|
11552
|
+
} else {
|
|
11553
|
+
log/* default.warn */.Z.warn("Init: ignored stall for too long, checking discontinuity", _now2 - ignoredStallTimeStamp);
|
|
11486
11554
|
}
|
|
11487
|
-
|
|
11488
|
-
lastSeekingPosition = null;
|
|
11489
11555
|
}
|
|
11490
11556
|
|
|
11491
11557
|
ignoredStallTimeStamp = null;
|
|
@@ -11501,7 +11567,7 @@ function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUp
|
|
|
11501
11567
|
|
|
11502
11568
|
var stalledPosition = rebuffering.position;
|
|
11503
11569
|
|
|
11504
|
-
if (stalledPosition !== null) {
|
|
11570
|
+
if (stalledPosition !== null && speed.getValue() > 0) {
|
|
11505
11571
|
var skippableDiscontinuity = findSeekableDiscontinuity(discontinuitiesStore, manifest, stalledPosition);
|
|
11506
11572
|
|
|
11507
11573
|
if (skippableDiscontinuity !== null) {
|
|
@@ -11527,7 +11593,7 @@ function StallAvoider(playbackObserver, manifest, lockedStream$, discontinuityUp
|
|
|
11527
11593
|
|
|
11528
11594
|
var nextBufferRangeGap = (0,ranges/* getNextRangeGap */.XS)(buffered, freezePosition);
|
|
11529
11595
|
|
|
11530
|
-
if (nextBufferRangeGap < BUFFER_DISCONTINUITY_THRESHOLD) {
|
|
11596
|
+
if (speed.getValue() > 0 && nextBufferRangeGap < BUFFER_DISCONTINUITY_THRESHOLD) {
|
|
11531
11597
|
var seekTo = freezePosition + nextBufferRangeGap + EPSILON;
|
|
11532
11598
|
|
|
11533
11599
|
if (playbackObserver.getCurrentTime() < seekTo) {
|
|
@@ -11844,10 +11910,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
11844
11910
|
|
|
11845
11911
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
|
|
11846
11912
|
var inheritsLoose = __webpack_require__(4578);
|
|
11847
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/defer.js
|
|
11848
|
-
var defer = __webpack_require__(9917);
|
|
11849
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/of.js
|
|
11850
|
-
var of = __webpack_require__(2817);
|
|
11851
11913
|
// EXTERNAL MODULE: ./src/log.ts + 1 modules
|
|
11852
11914
|
var log = __webpack_require__(3887);
|
|
11853
11915
|
// EXTERNAL MODULE: ./src/core/segment_buffers/implementations/types.ts + 3 modules
|
|
@@ -11875,7 +11937,6 @@ var manual_time_ranges = __webpack_require__(4309);
|
|
|
11875
11937
|
|
|
11876
11938
|
|
|
11877
11939
|
|
|
11878
|
-
|
|
11879
11940
|
/**
|
|
11880
11941
|
* Image SegmentBuffer implementation.
|
|
11881
11942
|
* @class ImageSegmentBuffer
|
|
@@ -11895,65 +11956,65 @@ var ImageSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
11895
11956
|
}
|
|
11896
11957
|
/**
|
|
11897
11958
|
* @param {Object} data
|
|
11959
|
+
* @returns {Promise}
|
|
11898
11960
|
*/
|
|
11899
11961
|
|
|
11900
11962
|
|
|
11901
11963
|
var _proto = ImageSegmentBuffer.prototype;
|
|
11902
11964
|
|
|
11903
11965
|
_proto.pushChunk = function pushChunk(infos) {
|
|
11904
|
-
var
|
|
11905
|
-
|
|
11906
|
-
return (0,defer/* defer */.P)(function () {
|
|
11907
|
-
var _a, _b;
|
|
11966
|
+
var _a, _b;
|
|
11908
11967
|
|
|
11909
|
-
|
|
11968
|
+
log/* default.debug */.Z.debug("ISB: appending new data.");
|
|
11910
11969
|
|
|
11911
|
-
|
|
11912
|
-
|
|
11913
|
-
|
|
11970
|
+
if (infos.data.chunk === null) {
|
|
11971
|
+
return Promise.resolve();
|
|
11972
|
+
}
|
|
11914
11973
|
|
|
11915
|
-
|
|
11916
|
-
|
|
11917
|
-
|
|
11918
|
-
|
|
11974
|
+
var _infos$data = infos.data,
|
|
11975
|
+
appendWindow = _infos$data.appendWindow,
|
|
11976
|
+
chunk = _infos$data.chunk; // The following check is ugly. I don't care, the image buffer is there
|
|
11977
|
+
// due to an ugly deprecated API that will soon disappear
|
|
11919
11978
|
|
|
11920
|
-
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
|
|
11924
|
-
|
|
11925
|
-
|
|
11926
|
-
|
|
11927
|
-
|
|
11928
|
-
|
|
11979
|
+
var start = chunk.start,
|
|
11980
|
+
end = chunk.end,
|
|
11981
|
+
timescale = chunk.timescale;
|
|
11982
|
+
var appendWindowStart = (_a = appendWindow[0]) !== null && _a !== void 0 ? _a : 0;
|
|
11983
|
+
var appendWindowEnd = (_b = appendWindow[1]) !== null && _b !== void 0 ? _b : Infinity;
|
|
11984
|
+
var timescaledStart = start / timescale;
|
|
11985
|
+
var timescaledEnd = end / timescale;
|
|
11986
|
+
var startTime = Math.max(appendWindowStart, timescaledStart);
|
|
11987
|
+
var endTime = Math.min(appendWindowEnd, timescaledEnd);
|
|
11929
11988
|
|
|
11930
|
-
|
|
11989
|
+
try {
|
|
11990
|
+
this._buffered.insert(startTime, endTime);
|
|
11931
11991
|
|
|
11932
11992
|
if (infos.inventoryInfos !== null) {
|
|
11933
|
-
|
|
11993
|
+
this._segmentInventory.insertChunk(infos.inventoryInfos);
|
|
11934
11994
|
}
|
|
11995
|
+
} catch (err) {
|
|
11996
|
+
return Promise.reject(err);
|
|
11997
|
+
}
|
|
11935
11998
|
|
|
11936
|
-
|
|
11937
|
-
});
|
|
11999
|
+
return Promise.resolve();
|
|
11938
12000
|
}
|
|
11939
12001
|
/**
|
|
11940
12002
|
* @param {Number} from
|
|
11941
12003
|
* @param {Number} to
|
|
12004
|
+
* @returns {Promise}
|
|
11942
12005
|
*/
|
|
11943
12006
|
;
|
|
11944
12007
|
|
|
11945
12008
|
_proto.removeBuffer = function removeBuffer(start, end) {
|
|
11946
|
-
|
|
11947
|
-
|
|
11948
|
-
|
|
11949
|
-
|
|
11950
|
-
|
|
11951
|
-
|
|
11952
|
-
|
|
11953
|
-
|
|
11954
|
-
|
|
11955
|
-
return (0,of.of)(undefined);
|
|
11956
|
-
});
|
|
12009
|
+
log/* default.info */.Z.info("ISB: ignored image data remove order", start, end); // Logic removed as it caused more problems than it resolved:
|
|
12010
|
+
// Image thumbnails are always downloaded as a single BIF file, meaning that
|
|
12011
|
+
// any removing might necessitate to re-load the whole file in the future
|
|
12012
|
+
// which seems pointless.
|
|
12013
|
+
// In any case, image handling through the regular RxPlayer APIs has been
|
|
12014
|
+
// completely deprecated now for several reasons, and should disappear in
|
|
12015
|
+
// the next major version.
|
|
12016
|
+
|
|
12017
|
+
return Promise.resolve();
|
|
11957
12018
|
}
|
|
11958
12019
|
/**
|
|
11959
12020
|
* Indicate that every chunks from a Segment has been given to pushChunk so
|
|
@@ -11962,18 +12023,14 @@ var ImageSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
11962
12023
|
* The returned Observable will emit and complete successively once the whole
|
|
11963
12024
|
* segment has been pushed and this indication is acknowledged.
|
|
11964
12025
|
* @param {Object} infos
|
|
11965
|
-
* @returns {
|
|
12026
|
+
* @returns {Promise}
|
|
11966
12027
|
*/
|
|
11967
12028
|
;
|
|
11968
12029
|
|
|
11969
12030
|
_proto.endOfSegment = function endOfSegment(_infos) {
|
|
11970
|
-
|
|
12031
|
+
this._segmentInventory.completeSegment(_infos, this._buffered);
|
|
11971
12032
|
|
|
11972
|
-
return (
|
|
11973
|
-
_this3._segmentInventory.completeSegment(_infos, _this3._buffered);
|
|
11974
|
-
|
|
11975
|
-
return (0,of.of)(undefined);
|
|
11976
|
-
});
|
|
12033
|
+
return Promise.resolve();
|
|
11977
12034
|
}
|
|
11978
12035
|
/**
|
|
11979
12036
|
* Returns the currently buffered data, in a TimeRanges object.
|
|
@@ -12028,34 +12085,12 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
12028
12085
|
|
|
12029
12086
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
|
|
12030
12087
|
var inheritsLoose = __webpack_require__(4578);
|
|
12031
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/merge.js
|
|
12032
|
-
var merge = __webpack_require__(3071);
|
|
12033
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/interval.js
|
|
12034
|
-
var observable_interval = __webpack_require__(6697);
|
|
12035
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/startWith.js
|
|
12036
|
-
var startWith = __webpack_require__(6108);
|
|
12037
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js
|
|
12038
|
-
var switchMap = __webpack_require__(4978);
|
|
12039
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js
|
|
12040
|
-
var concat = __webpack_require__(6362);
|
|
12041
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/map.js
|
|
12042
|
-
var map = __webpack_require__(9127);
|
|
12043
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js
|
|
12044
|
-
var takeUntil = __webpack_require__(3505);
|
|
12045
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/of.js
|
|
12046
|
-
var of = __webpack_require__(2817);
|
|
12047
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/Subject.js + 1 modules
|
|
12048
|
-
var Subject = __webpack_require__(6716);
|
|
12049
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/defer.js
|
|
12050
|
-
var defer = __webpack_require__(9917);
|
|
12051
12088
|
// EXTERNAL MODULE: ./src/compat/event_listeners.ts + 1 modules
|
|
12052
12089
|
var event_listeners = __webpack_require__(1381);
|
|
12053
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/Observable.js + 1 modules
|
|
12054
|
-
var Observable = __webpack_require__(1480);
|
|
12055
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js
|
|
12056
|
-
var distinctUntilChanged = __webpack_require__(3741);
|
|
12057
12090
|
// EXTERNAL MODULE: ./src/log.ts + 1 modules
|
|
12058
12091
|
var log = __webpack_require__(3887);
|
|
12092
|
+
// EXTERNAL MODULE: ./src/utils/reference.ts
|
|
12093
|
+
var reference = __webpack_require__(5095);
|
|
12059
12094
|
// EXTERNAL MODULE: ./src/compat/is_node.ts
|
|
12060
12095
|
var is_node = __webpack_require__(2203);
|
|
12061
12096
|
;// CONCATENATED MODULE: ./src/compat/on_height_width_change.ts
|
|
@@ -12087,8 +12122,8 @@ var _ResizeObserver = is_node/* default */.Z ? undefined : window.ResizeObserver
|
|
|
12087
12122
|
/* eslint-enable @typescript-eslint/no-unsafe-assignment */
|
|
12088
12123
|
|
|
12089
12124
|
/**
|
|
12090
|
-
* Emit the current height and width of the given `element`
|
|
12091
|
-
*
|
|
12125
|
+
* Emit the current height and width of the given `element` each time it
|
|
12126
|
+
* changes.
|
|
12092
12127
|
*
|
|
12093
12128
|
* On some browsers, we might not be able to rely on a native API to know when
|
|
12094
12129
|
* it changes, the `interval` argument allow us to provide us an inverval in
|
|
@@ -12099,55 +12134,69 @@ var _ResizeObserver = is_node/* default */.Z ? undefined : window.ResizeObserver
|
|
|
12099
12134
|
*/
|
|
12100
12135
|
|
|
12101
12136
|
|
|
12102
|
-
function onHeightWidthChange(element, interval) {
|
|
12103
|
-
|
|
12104
|
-
|
|
12105
|
-
|
|
12106
|
-
var lastWidth = -1;
|
|
12107
|
-
return new Observable/* Observable */.y(function (obs) {
|
|
12108
|
-
var resizeObserver = new _ResizeObserver(function (entries) {
|
|
12109
|
-
if (entries.length === 0) {
|
|
12110
|
-
log/* default.error */.Z.error("Compat: Resized but no observed element.");
|
|
12111
|
-
return;
|
|
12112
|
-
}
|
|
12137
|
+
function onHeightWidthChange(element, interval, cancellationSignal) {
|
|
12138
|
+
var _element$getBoundingC = element.getBoundingClientRect(),
|
|
12139
|
+
initHeight = _element$getBoundingC.height,
|
|
12140
|
+
initWidth = _element$getBoundingC.width;
|
|
12113
12141
|
|
|
12114
|
-
|
|
12115
|
-
|
|
12116
|
-
|
|
12117
|
-
|
|
12118
|
-
|
|
12119
|
-
|
|
12120
|
-
lastHeight = height;
|
|
12121
|
-
lastWidth = width;
|
|
12122
|
-
obs.next({
|
|
12123
|
-
height: height,
|
|
12124
|
-
width: width
|
|
12125
|
-
});
|
|
12126
|
-
}
|
|
12127
|
-
});
|
|
12128
|
-
resizeObserver.observe(element);
|
|
12129
|
-
return function () {
|
|
12130
|
-
resizeObserver.disconnect();
|
|
12131
|
-
};
|
|
12132
|
-
});
|
|
12133
|
-
}
|
|
12142
|
+
var ref = (0,reference/* default */.ZP)({
|
|
12143
|
+
height: initHeight,
|
|
12144
|
+
width: initWidth
|
|
12145
|
+
});
|
|
12146
|
+
var lastHeight = initHeight;
|
|
12147
|
+
var lastWidth = initWidth;
|
|
12134
12148
|
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
|
|
12138
|
-
|
|
12149
|
+
if (_ResizeObserver !== undefined) {
|
|
12150
|
+
var resizeObserver = new _ResizeObserver(function (entries) {
|
|
12151
|
+
if (entries.length === 0) {
|
|
12152
|
+
log/* default.error */.Z.error("Compat: Resized but no observed element.");
|
|
12153
|
+
return;
|
|
12154
|
+
}
|
|
12139
12155
|
|
|
12140
|
-
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12145
|
-
|
|
12146
|
-
|
|
12147
|
-
|
|
12156
|
+
var entry = entries[0];
|
|
12157
|
+
var _entry$contentRect = entry.contentRect,
|
|
12158
|
+
height = _entry$contentRect.height,
|
|
12159
|
+
width = _entry$contentRect.width;
|
|
12160
|
+
|
|
12161
|
+
if (height !== lastHeight || width !== lastWidth) {
|
|
12162
|
+
lastHeight = height;
|
|
12163
|
+
lastWidth = width;
|
|
12164
|
+
ref.setValue({
|
|
12165
|
+
height: height,
|
|
12166
|
+
width: width
|
|
12167
|
+
});
|
|
12168
|
+
}
|
|
12169
|
+
});
|
|
12170
|
+
resizeObserver.observe(element);
|
|
12171
|
+
cancellationSignal.register(function () {
|
|
12172
|
+
resizeObserver.disconnect();
|
|
12173
|
+
});
|
|
12174
|
+
} else {
|
|
12175
|
+
var intervalId = setInterval(function () {
|
|
12176
|
+
var _element$getBoundingC2 = element.getBoundingClientRect(),
|
|
12177
|
+
height = _element$getBoundingC2.height,
|
|
12178
|
+
width = _element$getBoundingC2.width;
|
|
12179
|
+
|
|
12180
|
+
if (height !== lastHeight || width !== lastWidth) {
|
|
12181
|
+
lastHeight = height;
|
|
12182
|
+
lastWidth = width;
|
|
12183
|
+
ref.setValue({
|
|
12184
|
+
height: height,
|
|
12185
|
+
width: width
|
|
12186
|
+
});
|
|
12187
|
+
}
|
|
12188
|
+
}, interval);
|
|
12189
|
+
cancellationSignal.register(function () {
|
|
12190
|
+
clearInterval(intervalId);
|
|
12191
|
+
});
|
|
12192
|
+
}
|
|
12193
|
+
|
|
12194
|
+
return ref;
|
|
12148
12195
|
}
|
|
12149
12196
|
// EXTERNAL MODULE: ./src/config.ts + 2 modules
|
|
12150
12197
|
var config = __webpack_require__(6872);
|
|
12198
|
+
// EXTERNAL MODULE: ./src/utils/task_canceller.ts
|
|
12199
|
+
var task_canceller = __webpack_require__(288);
|
|
12151
12200
|
// EXTERNAL MODULE: ./src/core/segment_buffers/implementations/types.ts + 3 modules
|
|
12152
12201
|
var types = __webpack_require__(9612);
|
|
12153
12202
|
// EXTERNAL MODULE: ./src/core/segment_buffers/implementations/utils/manual_time_ranges.ts
|
|
@@ -12796,37 +12845,14 @@ function updateProportionalElements(currentHeight, currentWidth, resolution, tex
|
|
|
12796
12845
|
|
|
12797
12846
|
|
|
12798
12847
|
|
|
12799
|
-
var onEnded
|
|
12800
|
-
onSeeked
|
|
12801
|
-
onSeeking
|
|
12802
|
-
/**
|
|
12803
|
-
* Generate the interval at which TextTrack HTML Cues should be refreshed.
|
|
12804
|
-
* @param {HTMLMediaElement} videoElement
|
|
12805
|
-
* @returns {Observable}
|
|
12806
|
-
*/
|
|
12807
|
-
|
|
12808
|
-
function generateRefreshInterval(videoElement) {
|
|
12809
|
-
var seeking$ = onSeeking$(videoElement);
|
|
12810
|
-
var seeked$ = onSeeked$(videoElement);
|
|
12811
|
-
var ended$ = onEnded$(videoElement);
|
|
12812
|
-
|
|
12813
|
-
var _config$getCurrent = config/* default.getCurrent */.Z.getCurrent(),
|
|
12814
|
-
MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL = _config$getCurrent.MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL;
|
|
12815
|
-
|
|
12816
|
-
var manualRefresh$ = (0,merge/* merge */.T)(seeked$, ended$);
|
|
12817
|
-
var autoRefresh$ = (0,observable_interval/* interval */.F)(MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL).pipe((0,startWith/* startWith */.O)(null));
|
|
12818
|
-
return manualRefresh$.pipe((0,startWith/* startWith */.O)(null), (0,switchMap/* switchMap */.w)(function () {
|
|
12819
|
-
return (0,concat/* concat */.z)(autoRefresh$.pipe((0,map/* map */.U)(function () {
|
|
12820
|
-
return true;
|
|
12821
|
-
}), (0,takeUntil/* takeUntil */.R)(seeking$)), (0,of.of)(false));
|
|
12822
|
-
}));
|
|
12823
|
-
}
|
|
12848
|
+
var onEnded = event_listeners/* onEnded */.M4,
|
|
12849
|
+
onSeeked = event_listeners/* onSeeked */.bQ,
|
|
12850
|
+
onSeeking = event_listeners/* onSeeking */.Q$;
|
|
12824
12851
|
/**
|
|
12825
12852
|
* @param {Element} element
|
|
12826
12853
|
* @param {Element} child
|
|
12827
12854
|
*/
|
|
12828
12855
|
|
|
12829
|
-
|
|
12830
12856
|
function safelyRemoveChild(element, child) {
|
|
12831
12857
|
try {
|
|
12832
12858
|
element.removeChild(child);
|
|
@@ -12883,88 +12909,55 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
12883
12909
|
_this._buffered = new manual_time_ranges/* default */.Z();
|
|
12884
12910
|
_this._videoElement = videoElement;
|
|
12885
12911
|
_this._textTrackElement = textTrackElement;
|
|
12886
|
-
_this.
|
|
12887
|
-
_this.
|
|
12912
|
+
_this._sizeUpdateCanceller = new task_canceller/* default */.ZP();
|
|
12913
|
+
_this._canceller = new task_canceller/* default */.ZP();
|
|
12888
12914
|
_this._buffer = new TextTrackCuesStore();
|
|
12889
|
-
_this._currentCues = [];
|
|
12890
|
-
|
|
12891
|
-
generateRefreshInterval(_this._videoElement).pipe((0,takeUntil/* takeUntil */.R)(_this._destroy$)).subscribe(function (shouldDisplay) {
|
|
12892
|
-
if (!shouldDisplay) {
|
|
12893
|
-
_this._disableCurrentCues();
|
|
12894
|
-
|
|
12895
|
-
return;
|
|
12896
|
-
}
|
|
12915
|
+
_this._currentCues = [];
|
|
12897
12916
|
|
|
12898
|
-
|
|
12899
|
-
MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL = _config$getCurrent2.MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL; // to spread the time error, we divide the regular chosen interval.
|
|
12900
|
-
|
|
12901
|
-
|
|
12902
|
-
var time = Math.max(_this._videoElement.currentTime + MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL / 1000 / 2, 0);
|
|
12903
|
-
|
|
12904
|
-
var cues = _this._buffer.get(time);
|
|
12917
|
+
_this.autoRefreshSubtitles(_this._canceller.signal);
|
|
12905
12918
|
|
|
12906
|
-
if (cues.length === 0) {
|
|
12907
|
-
_this._disableCurrentCues();
|
|
12908
|
-
} else {
|
|
12909
|
-
_this._displayCues(cues);
|
|
12910
|
-
}
|
|
12911
|
-
});
|
|
12912
12919
|
return _this;
|
|
12913
12920
|
}
|
|
12914
12921
|
/**
|
|
12915
12922
|
* Push segment on Subscription.
|
|
12916
12923
|
* @param {Object} infos
|
|
12917
|
-
* @returns {
|
|
12924
|
+
* @returns {Promise}
|
|
12918
12925
|
*/
|
|
12919
12926
|
|
|
12920
12927
|
|
|
12921
12928
|
var _proto = HTMLTextSegmentBuffer.prototype;
|
|
12922
12929
|
|
|
12923
12930
|
_proto.pushChunk = function pushChunk(infos) {
|
|
12924
|
-
|
|
12925
|
-
|
|
12926
|
-
|
|
12927
|
-
|
|
12931
|
+
try {
|
|
12932
|
+
this.pushChunkSync(infos);
|
|
12933
|
+
} catch (err) {
|
|
12934
|
+
return Promise.reject(err);
|
|
12935
|
+
}
|
|
12928
12936
|
|
|
12929
|
-
|
|
12930
|
-
});
|
|
12937
|
+
return Promise.resolve();
|
|
12931
12938
|
}
|
|
12932
12939
|
/**
|
|
12933
12940
|
* Remove buffered data.
|
|
12934
12941
|
* @param {number} start - start position, in seconds
|
|
12935
12942
|
* @param {number} end - end position, in seconds
|
|
12936
|
-
* @returns {
|
|
12943
|
+
* @returns {Promise}
|
|
12937
12944
|
*/
|
|
12938
12945
|
;
|
|
12939
12946
|
|
|
12940
12947
|
_proto.removeBuffer = function removeBuffer(start, end) {
|
|
12941
|
-
|
|
12942
|
-
|
|
12943
|
-
return (0,defer/* defer */.P)(function () {
|
|
12944
|
-
_this3.removeBufferSync(start, end);
|
|
12945
|
-
|
|
12946
|
-
return (0,of.of)(undefined);
|
|
12947
|
-
});
|
|
12948
|
+
this.removeBufferSync(start, end);
|
|
12949
|
+
return Promise.resolve();
|
|
12948
12950
|
}
|
|
12949
12951
|
/**
|
|
12950
|
-
* Indicate that every chunks from a Segment has been given to pushChunk so
|
|
12951
|
-
* far.
|
|
12952
|
-
* This will update our internal Segment inventory accordingly.
|
|
12953
|
-
* The returned Observable will emit and complete successively once the whole
|
|
12954
|
-
* segment has been pushed and this indication is acknowledged.
|
|
12955
12952
|
* @param {Object} infos
|
|
12956
|
-
* @returns {
|
|
12953
|
+
* @returns {Promise}
|
|
12957
12954
|
*/
|
|
12958
12955
|
;
|
|
12959
12956
|
|
|
12960
|
-
_proto.endOfSegment = function endOfSegment(
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
return (0,defer/* defer */.P)(function () {
|
|
12964
|
-
_this4._segmentInventory.completeSegment(_infos, _this4._buffered);
|
|
12957
|
+
_proto.endOfSegment = function endOfSegment(infos) {
|
|
12958
|
+
this._segmentInventory.completeSegment(infos, this._buffered);
|
|
12965
12959
|
|
|
12966
|
-
|
|
12967
|
-
});
|
|
12960
|
+
return Promise.resolve();
|
|
12968
12961
|
}
|
|
12969
12962
|
/**
|
|
12970
12963
|
* Returns the currently buffered data, in a TimeRanges object.
|
|
@@ -12985,9 +12978,7 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
12985
12978
|
|
|
12986
12979
|
this._buffered.remove(0, Infinity);
|
|
12987
12980
|
|
|
12988
|
-
this.
|
|
12989
|
-
|
|
12990
|
-
this._destroy$.complete();
|
|
12981
|
+
this._canceller.cancel();
|
|
12991
12982
|
}
|
|
12992
12983
|
/**
|
|
12993
12984
|
* Push the text track contained in `data` to the HTMLTextSegmentBuffer
|
|
@@ -13001,7 +12992,7 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13001
12992
|
*
|
|
13002
12993
|
* /!\ This method won't add any data to the linked inventory.
|
|
13003
12994
|
* Please use the `pushChunk` method for most use-cases.
|
|
13004
|
-
* @param {Object}
|
|
12995
|
+
* @param {Object} infos
|
|
13005
12996
|
* @returns {boolean}
|
|
13006
12997
|
*/
|
|
13007
12998
|
;
|
|
@@ -13122,7 +13113,7 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13122
13113
|
;
|
|
13123
13114
|
|
|
13124
13115
|
_proto._disableCurrentCues = function _disableCurrentCues() {
|
|
13125
|
-
this.
|
|
13116
|
+
this._sizeUpdateCanceller.cancel();
|
|
13126
13117
|
|
|
13127
13118
|
if (this._currentCues.length > 0) {
|
|
13128
13119
|
for (var i = 0; i < this._currentCues.length; i++) {
|
|
@@ -13134,7 +13125,7 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13134
13125
|
}
|
|
13135
13126
|
/**
|
|
13136
13127
|
* Display a new Cue. If one was already present, it will be replaced.
|
|
13137
|
-
* @param {HTMLElement}
|
|
13128
|
+
* @param {HTMLElement} elements
|
|
13138
13129
|
*/
|
|
13139
13130
|
;
|
|
13140
13131
|
|
|
@@ -13149,7 +13140,7 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13149
13140
|
// TODO More intelligent handling
|
|
13150
13141
|
|
|
13151
13142
|
|
|
13152
|
-
this.
|
|
13143
|
+
this._sizeUpdateCanceller.cancel();
|
|
13153
13144
|
|
|
13154
13145
|
for (var i = 0; i < this._currentCues.length; i++) {
|
|
13155
13146
|
safelyRemoveChild(this._textTrackElement, this._currentCues[i].element);
|
|
@@ -13174,11 +13165,16 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13174
13165
|
});
|
|
13175
13166
|
|
|
13176
13167
|
if (proportionalCues.length > 0) {
|
|
13177
|
-
|
|
13178
|
-
|
|
13168
|
+
this._sizeUpdateCanceller = new task_canceller/* default */.ZP({
|
|
13169
|
+
cancelOn: this._canceller.signal
|
|
13170
|
+
});
|
|
13171
|
+
|
|
13172
|
+
var _config$getCurrent = config/* default.getCurrent */.Z.getCurrent(),
|
|
13173
|
+
TEXT_TRACK_SIZE_CHECKS_INTERVAL = _config$getCurrent.TEXT_TRACK_SIZE_CHECKS_INTERVAL; // update propertionally-sized elements periodically
|
|
13179
13174
|
|
|
13180
13175
|
|
|
13181
|
-
onHeightWidthChange(this._textTrackElement, TEXT_TRACK_SIZE_CHECKS_INTERVAL
|
|
13176
|
+
var heightWidthRef = onHeightWidthChange(this._textTrackElement, TEXT_TRACK_SIZE_CHECKS_INTERVAL, this._sizeUpdateCanceller.signal);
|
|
13177
|
+
heightWidthRef.onUpdate(function (_ref) {
|
|
13182
13178
|
var height = _ref.height,
|
|
13183
13179
|
width = _ref.width;
|
|
13184
13180
|
|
|
@@ -13188,8 +13184,85 @@ var HTMLTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13188
13184
|
_element = _proportionalCues$_i.element;
|
|
13189
13185
|
updateProportionalElements(height, width, _resolution, _element);
|
|
13190
13186
|
}
|
|
13187
|
+
}, {
|
|
13188
|
+
clearSignal: this._sizeUpdateCanceller.signal,
|
|
13189
|
+
emitCurrentValue: true
|
|
13191
13190
|
});
|
|
13192
13191
|
}
|
|
13192
|
+
}
|
|
13193
|
+
/**
|
|
13194
|
+
* Auto-refresh the display of subtitles according to the media element's
|
|
13195
|
+
* position and events.
|
|
13196
|
+
* @param {Object} cancellationSignal
|
|
13197
|
+
*/
|
|
13198
|
+
;
|
|
13199
|
+
|
|
13200
|
+
_proto.autoRefreshSubtitles = function autoRefreshSubtitles(cancellationSignal) {
|
|
13201
|
+
var _this2 = this;
|
|
13202
|
+
|
|
13203
|
+
var autoRefreshCanceller = null;
|
|
13204
|
+
|
|
13205
|
+
var _config$getCurrent2 = config/* default.getCurrent */.Z.getCurrent(),
|
|
13206
|
+
MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL = _config$getCurrent2.MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL;
|
|
13207
|
+
|
|
13208
|
+
var startAutoRefresh = function startAutoRefresh() {
|
|
13209
|
+
stopAutoRefresh();
|
|
13210
|
+
autoRefreshCanceller = new task_canceller/* default */.ZP({
|
|
13211
|
+
cancelOn: cancellationSignal
|
|
13212
|
+
});
|
|
13213
|
+
var intervalId = setInterval(function () {
|
|
13214
|
+
return _this2.refreshSubtitles();
|
|
13215
|
+
}, MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL);
|
|
13216
|
+
autoRefreshCanceller.signal.register(function () {
|
|
13217
|
+
clearInterval(intervalId);
|
|
13218
|
+
});
|
|
13219
|
+
|
|
13220
|
+
_this2.refreshSubtitles();
|
|
13221
|
+
};
|
|
13222
|
+
|
|
13223
|
+
onSeeking(this._videoElement, function () {
|
|
13224
|
+
stopAutoRefresh();
|
|
13225
|
+
|
|
13226
|
+
_this2._disableCurrentCues();
|
|
13227
|
+
}, cancellationSignal);
|
|
13228
|
+
onSeeked(this._videoElement, startAutoRefresh, cancellationSignal);
|
|
13229
|
+
onEnded(this._videoElement, startAutoRefresh, cancellationSignal);
|
|
13230
|
+
|
|
13231
|
+
function stopAutoRefresh() {
|
|
13232
|
+
if (autoRefreshCanceller !== null) {
|
|
13233
|
+
autoRefreshCanceller.cancel();
|
|
13234
|
+
autoRefreshCanceller = null;
|
|
13235
|
+
}
|
|
13236
|
+
}
|
|
13237
|
+
}
|
|
13238
|
+
/**
|
|
13239
|
+
* Refresh current subtitles according to the current media element's
|
|
13240
|
+
* position.
|
|
13241
|
+
*/
|
|
13242
|
+
;
|
|
13243
|
+
|
|
13244
|
+
_proto.refreshSubtitles = function refreshSubtitles() {
|
|
13245
|
+
var videoElt = this._videoElement;
|
|
13246
|
+
|
|
13247
|
+
var _config$getCurrent3 = config/* default.getCurrent */.Z.getCurrent(),
|
|
13248
|
+
MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL = _config$getCurrent3.MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL;
|
|
13249
|
+
|
|
13250
|
+
var time;
|
|
13251
|
+
|
|
13252
|
+
if (videoElt.paused || videoElt.playbackRate <= 0) {
|
|
13253
|
+
time = videoElt.currentTime;
|
|
13254
|
+
} else {
|
|
13255
|
+
// to spread the time error, we divide the regular chosen interval.
|
|
13256
|
+
time = Math.max(this._videoElement.currentTime + MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL / 1000 / 2, 0);
|
|
13257
|
+
}
|
|
13258
|
+
|
|
13259
|
+
var cues = this._buffer.get(time);
|
|
13260
|
+
|
|
13261
|
+
if (cues.length === 0) {
|
|
13262
|
+
this._disableCurrentCues();
|
|
13263
|
+
} else {
|
|
13264
|
+
this._displayCues(cues);
|
|
13265
|
+
}
|
|
13193
13266
|
};
|
|
13194
13267
|
|
|
13195
13268
|
return HTMLTextSegmentBuffer;
|
|
@@ -13263,10 +13336,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
13263
13336
|
|
|
13264
13337
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
|
|
13265
13338
|
var inheritsLoose = __webpack_require__(4578);
|
|
13266
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/defer.js
|
|
13267
|
-
var defer = __webpack_require__(9917);
|
|
13268
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/of.js
|
|
13269
|
-
var of = __webpack_require__(2817);
|
|
13270
13339
|
// EXTERNAL MODULE: ./src/compat/browser_detection.ts
|
|
13271
13340
|
var browser_detection = __webpack_require__(3666);
|
|
13272
13341
|
;// CONCATENATED MODULE: ./src/compat/add_text_track.ts
|
|
@@ -13468,7 +13537,6 @@ function parseTextTrackToCues(type, data, timestampOffset, language) {
|
|
|
13468
13537
|
|
|
13469
13538
|
|
|
13470
13539
|
|
|
13471
|
-
|
|
13472
13540
|
/**
|
|
13473
13541
|
* Implementation of an SegmentBuffer for "native" text tracks.
|
|
13474
13542
|
* "Native" text tracks rely on a `<track>` HTMLElement and its associated
|
|
@@ -13502,36 +13570,35 @@ var NativeTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13502
13570
|
}
|
|
13503
13571
|
/**
|
|
13504
13572
|
* @param {Object} infos
|
|
13505
|
-
* @returns {
|
|
13573
|
+
* @returns {Promise}
|
|
13506
13574
|
*/
|
|
13507
13575
|
|
|
13508
13576
|
|
|
13509
13577
|
var _proto = NativeTextSegmentBuffer.prototype;
|
|
13510
13578
|
|
|
13511
13579
|
_proto.pushChunk = function pushChunk(infos) {
|
|
13512
|
-
var
|
|
13580
|
+
var _a, _b;
|
|
13513
13581
|
|
|
13514
|
-
|
|
13515
|
-
var _a, _b;
|
|
13582
|
+
log/* default.debug */.Z.debug("NTSB: Appending new native text tracks");
|
|
13516
13583
|
|
|
13517
|
-
|
|
13584
|
+
if (infos.data.chunk === null) {
|
|
13585
|
+
return Promise.resolve();
|
|
13586
|
+
}
|
|
13518
13587
|
|
|
13519
|
-
|
|
13520
|
-
|
|
13521
|
-
|
|
13588
|
+
var _infos$data = infos.data,
|
|
13589
|
+
timestampOffset = _infos$data.timestampOffset,
|
|
13590
|
+
appendWindow = _infos$data.appendWindow,
|
|
13591
|
+
chunk = _infos$data.chunk;
|
|
13592
|
+
assertChunkIsTextTrackSegmentData(chunk);
|
|
13593
|
+
var startTime = chunk.start,
|
|
13594
|
+
endTime = chunk.end,
|
|
13595
|
+
dataString = chunk.data,
|
|
13596
|
+
type = chunk.type,
|
|
13597
|
+
language = chunk.language;
|
|
13598
|
+
var appendWindowStart = (_a = appendWindow[0]) !== null && _a !== void 0 ? _a : 0;
|
|
13599
|
+
var appendWindowEnd = (_b = appendWindow[1]) !== null && _b !== void 0 ? _b : Infinity;
|
|
13522
13600
|
|
|
13523
|
-
|
|
13524
|
-
timestampOffset = _infos$data.timestampOffset,
|
|
13525
|
-
appendWindow = _infos$data.appendWindow,
|
|
13526
|
-
chunk = _infos$data.chunk;
|
|
13527
|
-
assertChunkIsTextTrackSegmentData(chunk);
|
|
13528
|
-
var startTime = chunk.start,
|
|
13529
|
-
endTime = chunk.end,
|
|
13530
|
-
dataString = chunk.data,
|
|
13531
|
-
type = chunk.type,
|
|
13532
|
-
language = chunk.language;
|
|
13533
|
-
var appendWindowStart = (_a = appendWindow[0]) !== null && _a !== void 0 ? _a : 0;
|
|
13534
|
-
var appendWindowEnd = (_b = appendWindow[1]) !== null && _b !== void 0 ? _b : Infinity;
|
|
13601
|
+
try {
|
|
13535
13602
|
var cues = parseTextTrackToCues(type, dataString, timestampOffset, language);
|
|
13536
13603
|
|
|
13537
13604
|
if (appendWindowStart !== 0 && appendWindowEnd !== Infinity) {
|
|
@@ -13573,7 +13640,7 @@ var NativeTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13573
13640
|
} else {
|
|
13574
13641
|
if (cues.length <= 0) {
|
|
13575
13642
|
log/* default.warn */.Z.warn("NTSB: Current text tracks have no cues nor start time. Aborting");
|
|
13576
|
-
return
|
|
13643
|
+
return Promise.resolve();
|
|
13577
13644
|
}
|
|
13578
13645
|
|
|
13579
13646
|
log/* default.warn */.Z.warn("NTSB: No start time given. Guessing from cues.");
|
|
@@ -13587,7 +13654,7 @@ var NativeTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13587
13654
|
} else {
|
|
13588
13655
|
if (cues.length <= 0) {
|
|
13589
13656
|
log/* default.warn */.Z.warn("NTSB: Current text tracks have no cues nor end time. Aborting");
|
|
13590
|
-
return
|
|
13657
|
+
return Promise.resolve();
|
|
13591
13658
|
}
|
|
13592
13659
|
|
|
13593
13660
|
log/* default.warn */.Z.warn("NTSB: No end time given. Guessing from cues.");
|
|
@@ -13596,7 +13663,7 @@ var NativeTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13596
13663
|
|
|
13597
13664
|
if (end <= start) {
|
|
13598
13665
|
log/* default.warn */.Z.warn("NTSB: Invalid text track appended: ", "the start time is inferior or equal to the end time.");
|
|
13599
|
-
return
|
|
13666
|
+
return Promise.resolve();
|
|
13600
13667
|
}
|
|
13601
13668
|
|
|
13602
13669
|
if (cues.length > 0) {
|
|
@@ -13605,64 +13672,53 @@ var NativeTextSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
13605
13672
|
// IE/Edge.
|
|
13606
13673
|
// TODO Move to compat
|
|
13607
13674
|
|
|
13608
|
-
var currentCues =
|
|
13675
|
+
var currentCues = this._track.cues;
|
|
13609
13676
|
|
|
13610
13677
|
if (currentCues !== null && currentCues.length > 0) {
|
|
13611
13678
|
if (firstCue.startTime < currentCues[currentCues.length - 1].startTime) {
|
|
13612
|
-
|
|
13679
|
+
this._removeData(firstCue.startTime, +Infinity);
|
|
13613
13680
|
}
|
|
13614
13681
|
}
|
|
13615
13682
|
|
|
13616
13683
|
for (var _i = 0; _i < cues.length; _i++) {
|
|
13617
|
-
|
|
13684
|
+
this._track.addCue(cues[_i]);
|
|
13618
13685
|
}
|
|
13619
13686
|
}
|
|
13620
13687
|
|
|
13621
|
-
|
|
13688
|
+
this._buffered.insert(start, end);
|
|
13622
13689
|
|
|
13623
13690
|
if (infos.inventoryInfos !== null) {
|
|
13624
|
-
|
|
13691
|
+
this._segmentInventory.insertChunk(infos.inventoryInfos);
|
|
13625
13692
|
}
|
|
13693
|
+
} catch (err) {
|
|
13694
|
+
return Promise.reject(err);
|
|
13695
|
+
}
|
|
13626
13696
|
|
|
13627
|
-
|
|
13628
|
-
});
|
|
13697
|
+
return Promise.resolve();
|
|
13629
13698
|
}
|
|
13630
13699
|
/**
|
|
13631
13700
|
* Remove buffered data.
|
|
13632
13701
|
* @param {number} start - start position, in seconds
|
|
13633
13702
|
* @param {number} end - end position, in seconds
|
|
13634
|
-
* @returns {
|
|
13703
|
+
* @returns {Promise}
|
|
13635
13704
|
*/
|
|
13636
13705
|
;
|
|
13637
13706
|
|
|
13638
13707
|
_proto.removeBuffer = function removeBuffer(start, end) {
|
|
13639
|
-
|
|
13708
|
+
this._removeData(start, end);
|
|
13640
13709
|
|
|
13641
|
-
return (
|
|
13642
|
-
_this3._removeData(start, end);
|
|
13643
|
-
|
|
13644
|
-
return (0,of.of)(undefined);
|
|
13645
|
-
});
|
|
13710
|
+
return Promise.resolve();
|
|
13646
13711
|
}
|
|
13647
13712
|
/**
|
|
13648
|
-
* Indicate that every chunks from a Segment has been given to pushChunk so
|
|
13649
|
-
* far.
|
|
13650
|
-
* This will update our internal Segment inventory accordingly.
|
|
13651
|
-
* The returned Observable will emit and complete successively once the whole
|
|
13652
|
-
* segment has been pushed and this indication is acknowledged.
|
|
13653
13713
|
* @param {Object} infos
|
|
13654
|
-
* @returns {
|
|
13714
|
+
* @returns {Promise}
|
|
13655
13715
|
*/
|
|
13656
13716
|
;
|
|
13657
13717
|
|
|
13658
13718
|
_proto.endOfSegment = function endOfSegment(_infos) {
|
|
13659
|
-
|
|
13660
|
-
|
|
13661
|
-
return (0,defer/* defer */.P)(function () {
|
|
13662
|
-
_this4._segmentInventory.completeSegment(_infos, _this4._buffered);
|
|
13719
|
+
this._segmentInventory.completeSegment(_infos, this._buffered);
|
|
13663
13720
|
|
|
13664
|
-
|
|
13665
|
-
});
|
|
13721
|
+
return Promise.resolve();
|
|
13666
13722
|
}
|
|
13667
13723
|
/**
|
|
13668
13724
|
* Returns the currently buffered data, in a TimeRanges object.
|
|
@@ -15340,9 +15396,10 @@ var CustomLoaderError = /*#__PURE__*/function (_Error) {
|
|
|
15340
15396
|
(0,_babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(CustomLoaderError, _Error);
|
|
15341
15397
|
|
|
15342
15398
|
/**
|
|
15399
|
+
* @param {string} message
|
|
15400
|
+
* @param {boolean} canRetry
|
|
15401
|
+
* @param {boolean} isOfflineError
|
|
15343
15402
|
* @param {XMLHttpRequest} xhr
|
|
15344
|
-
* @param {string} url
|
|
15345
|
-
* @param {string} type
|
|
15346
15403
|
*/
|
|
15347
15404
|
function CustomLoaderError(message, canRetry, isOfflineError, xhr) {
|
|
15348
15405
|
var _this;
|
|
@@ -31849,12 +31906,13 @@ var take_first_set = __webpack_require__(5278);
|
|
|
31849
31906
|
* Loads an image segment.
|
|
31850
31907
|
* @param {string|null} url
|
|
31851
31908
|
* @param {Object} content
|
|
31909
|
+
* @param {Object} options
|
|
31852
31910
|
* @param {Object} cancelSignal
|
|
31853
31911
|
* @param {Object} callbacks
|
|
31854
31912
|
* @returns {Promise}
|
|
31855
31913
|
*/
|
|
31856
31914
|
|
|
31857
|
-
function imageLoader(_x, _x2, _x3, _x4) {
|
|
31915
|
+
function imageLoader(_x, _x2, _x3, _x4, _x5) {
|
|
31858
31916
|
return _imageLoader.apply(this, arguments);
|
|
31859
31917
|
}
|
|
31860
31918
|
/**
|
|
@@ -31865,7 +31923,7 @@ function imageLoader(_x, _x2, _x3, _x4) {
|
|
|
31865
31923
|
*/
|
|
31866
31924
|
|
|
31867
31925
|
function _imageLoader() {
|
|
31868
|
-
_imageLoader = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(url, content, cancelSignal, callbacks) {
|
|
31926
|
+
_imageLoader = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(url, content, options, cancelSignal, callbacks) {
|
|
31869
31927
|
var segment, data;
|
|
31870
31928
|
return regenerator_default().wrap(function _callee$(_context) {
|
|
31871
31929
|
while (1) {
|
|
@@ -31888,6 +31946,7 @@ function _imageLoader() {
|
|
|
31888
31946
|
return (0,request/* default */.ZP)({
|
|
31889
31947
|
url: url,
|
|
31890
31948
|
responseType: "arraybuffer",
|
|
31949
|
+
timeout: options.timeout,
|
|
31891
31950
|
onProgress: callbacks.onProgress,
|
|
31892
31951
|
cancelSignal: cancelSignal
|
|
31893
31952
|
});
|
|
@@ -31968,6 +32027,8 @@ function imageParser(loadedSegment, content) {
|
|
|
31968
32027
|
appendWindow: [period.start, period.end]
|
|
31969
32028
|
};
|
|
31970
32029
|
}
|
|
32030
|
+
// EXTERNAL MODULE: ./src/config.ts + 2 modules
|
|
32031
|
+
var config = __webpack_require__(6872);
|
|
31971
32032
|
// EXTERNAL MODULE: ./src/errors/format_error.ts
|
|
31972
32033
|
var format_error = __webpack_require__(8750);
|
|
31973
32034
|
// EXTERNAL MODULE: ./src/log.ts + 1 modules
|
|
@@ -32001,6 +32062,7 @@ var string_parsing = __webpack_require__(3635);
|
|
|
32001
32062
|
|
|
32002
32063
|
|
|
32003
32064
|
|
|
32065
|
+
|
|
32004
32066
|
function generateManifestParser(options) {
|
|
32005
32067
|
var aggressiveMode = options.aggressiveMode,
|
|
32006
32068
|
referenceDateTime = options.referenceDateTime;
|
|
@@ -32098,13 +32160,16 @@ function generateManifestParser(options) {
|
|
|
32098
32160
|
var value = parserResponse.value;
|
|
32099
32161
|
var externalResources = value.urls.map(function (resourceUrl) {
|
|
32100
32162
|
return scheduleRequest(function () {
|
|
32163
|
+
var defaultTimeout = config/* default.getCurrent */.Z.getCurrent().DEFAULT_REQUEST_TIMEOUT;
|
|
32101
32164
|
return value.format === "string" ? (0,request/* default */.ZP)({
|
|
32102
32165
|
url: resourceUrl,
|
|
32103
32166
|
responseType: "text",
|
|
32167
|
+
timeout: defaultTimeout,
|
|
32104
32168
|
cancelSignal: cancelSignal
|
|
32105
32169
|
}) : (0,request/* default */.ZP)({
|
|
32106
32170
|
url: resourceUrl,
|
|
32107
32171
|
responseType: "arraybuffer",
|
|
32172
|
+
timeout: defaultTimeout,
|
|
32108
32173
|
cancelSignal: cancelSignal
|
|
32109
32174
|
});
|
|
32110
32175
|
}).then(function (res) {
|
|
@@ -32278,8 +32343,6 @@ function doesXmlSeemsUtf8Encoded(xmlData) {
|
|
|
32278
32343
|
}
|
|
32279
32344
|
// EXTERNAL MODULE: ./src/errors/custom_loader_error.ts
|
|
32280
32345
|
var custom_loader_error = __webpack_require__(7839);
|
|
32281
|
-
// EXTERNAL MODULE: ./src/config.ts + 2 modules
|
|
32282
|
-
var config = __webpack_require__(6872);
|
|
32283
32346
|
// EXTERNAL MODULE: ./src/errors/request_error.ts
|
|
32284
32347
|
var request_error = __webpack_require__(9105);
|
|
32285
32348
|
// EXTERNAL MODULE: ./src/errors/error_codes.ts
|
|
@@ -32309,7 +32372,6 @@ var is_null_or_undefined = __webpack_require__(1946);
|
|
|
32309
32372
|
|
|
32310
32373
|
|
|
32311
32374
|
|
|
32312
|
-
|
|
32313
32375
|
var _Headers = typeof Headers === "function" ? Headers : null;
|
|
32314
32376
|
|
|
32315
32377
|
var _AbortController = typeof AbortController === "function" ? AbortController : null;
|
|
@@ -32350,11 +32412,15 @@ function fetchRequest(options) {
|
|
|
32350
32412
|
abortController.abort();
|
|
32351
32413
|
}
|
|
32352
32414
|
|
|
32353
|
-
var
|
|
32354
|
-
|
|
32355
|
-
|
|
32356
|
-
|
|
32357
|
-
|
|
32415
|
+
var timeout;
|
|
32416
|
+
|
|
32417
|
+
if (options.timeout !== undefined) {
|
|
32418
|
+
timeout = window.setTimeout(function () {
|
|
32419
|
+
timeouted = true;
|
|
32420
|
+
abortFetch();
|
|
32421
|
+
}, options.timeout);
|
|
32422
|
+
}
|
|
32423
|
+
|
|
32358
32424
|
var deregisterCancelLstnr = options.cancelSignal.register(function abortRequest(err) {
|
|
32359
32425
|
cancellation = err;
|
|
32360
32426
|
abortFetch();
|
|
@@ -32563,7 +32629,7 @@ var check_isobmff_integrity = __webpack_require__(4460);
|
|
|
32563
32629
|
*/
|
|
32564
32630
|
|
|
32565
32631
|
function addSegmentIntegrityChecks(segmentLoader) {
|
|
32566
|
-
return function (url, content, initialCancelSignal, callbacks) {
|
|
32632
|
+
return function (url, content, loaderOptions, initialCancelSignal, callbacks) {
|
|
32567
32633
|
return new Promise(function (resolve, reject) {
|
|
32568
32634
|
var requestCanceller = new task_canceller/* default */.ZP({
|
|
32569
32635
|
cancelOn: initialCancelSignal
|
|
@@ -32571,7 +32637,7 @@ function addSegmentIntegrityChecks(segmentLoader) {
|
|
|
32571
32637
|
// `stopRejectingOnCancel` here is a function allowing to stop this mechanism
|
|
32572
32638
|
|
|
32573
32639
|
var stopRejectingOnCancel = requestCanceller.signal.register(reject);
|
|
32574
|
-
segmentLoader(url, content, requestCanceller.signal, Object.assign(Object.assign({}, callbacks), {
|
|
32640
|
+
segmentLoader(url, content, loaderOptions, requestCanceller.signal, Object.assign(Object.assign({}, callbacks), {
|
|
32575
32641
|
onNewChunk: function onNewChunk(data) {
|
|
32576
32642
|
try {
|
|
32577
32643
|
trowOnIntegrityError(data);
|
|
@@ -32646,16 +32712,18 @@ var byte_parsing = __webpack_require__(6968);
|
|
|
32646
32712
|
* Perform a request for an initialization segment, agnostic to the container.
|
|
32647
32713
|
* @param {string} url
|
|
32648
32714
|
* @param {Object} segment
|
|
32715
|
+
* @param {Object} options
|
|
32649
32716
|
* @param {CancellationSignal} cancelSignal
|
|
32650
32717
|
* @param {Object} callbacks
|
|
32651
32718
|
* @returns {Promise}
|
|
32652
32719
|
*/
|
|
32653
32720
|
|
|
32654
|
-
function initSegmentLoader(url, segment, cancelSignal, callbacks) {
|
|
32721
|
+
function initSegmentLoader(url, segment, options, cancelSignal, callbacks) {
|
|
32655
32722
|
if (segment.range === undefined) {
|
|
32656
32723
|
return (0,request/* default */.ZP)({
|
|
32657
32724
|
url: url,
|
|
32658
32725
|
responseType: "arraybuffer",
|
|
32726
|
+
timeout: options.timeout,
|
|
32659
32727
|
cancelSignal: cancelSignal,
|
|
32660
32728
|
onProgress: callbacks.onProgress
|
|
32661
32729
|
}).then(function (data) {
|
|
@@ -32673,6 +32741,7 @@ function initSegmentLoader(url, segment, cancelSignal, callbacks) {
|
|
|
32673
32741
|
Range: (0,byte_range/* default */.Z)(segment.range)
|
|
32674
32742
|
},
|
|
32675
32743
|
responseType: "arraybuffer",
|
|
32744
|
+
timeout: options.timeout,
|
|
32676
32745
|
cancelSignal: cancelSignal,
|
|
32677
32746
|
onProgress: callbacks.onProgress
|
|
32678
32747
|
}).then(function (data) {
|
|
@@ -32691,6 +32760,7 @@ function initSegmentLoader(url, segment, cancelSignal, callbacks) {
|
|
|
32691
32760
|
Range: (0,byte_range/* default */.Z)([segment.range[0], segment.indexRange[1]])
|
|
32692
32761
|
},
|
|
32693
32762
|
responseType: "arraybuffer",
|
|
32763
|
+
timeout: options.timeout,
|
|
32694
32764
|
cancelSignal: cancelSignal,
|
|
32695
32765
|
onProgress: callbacks.onProgress
|
|
32696
32766
|
}).then(function (data) {
|
|
@@ -32707,6 +32777,7 @@ function initSegmentLoader(url, segment, cancelSignal, callbacks) {
|
|
|
32707
32777
|
Range: (0,byte_range/* default */.Z)(segment.range)
|
|
32708
32778
|
},
|
|
32709
32779
|
responseType: "arraybuffer",
|
|
32780
|
+
timeout: options.timeout,
|
|
32710
32781
|
cancelSignal: cancelSignal,
|
|
32711
32782
|
onProgress: callbacks.onProgress
|
|
32712
32783
|
});
|
|
@@ -32716,6 +32787,7 @@ function initSegmentLoader(url, segment, cancelSignal, callbacks) {
|
|
|
32716
32787
|
Range: (0,byte_range/* default */.Z)(segment.indexRange)
|
|
32717
32788
|
},
|
|
32718
32789
|
responseType: "arraybuffer",
|
|
32790
|
+
timeout: options.timeout,
|
|
32719
32791
|
cancelSignal: cancelSignal,
|
|
32720
32792
|
onProgress: callbacks.onProgress
|
|
32721
32793
|
});
|
|
@@ -32842,12 +32914,13 @@ function extractCompleteChunks(buffer) {
|
|
|
32842
32914
|
*
|
|
32843
32915
|
* @param {string} url - URL of the segment to download.
|
|
32844
32916
|
* @param {Object} content - Context of the segment needed.
|
|
32917
|
+
* @param {Object} options
|
|
32845
32918
|
* @param {Object} callbacks
|
|
32846
32919
|
* @param {CancellationSignal} cancelSignal
|
|
32847
32920
|
* @returns {Promise}
|
|
32848
32921
|
*/
|
|
32849
32922
|
|
|
32850
|
-
function lowLatencySegmentLoader(url, content, callbacks, cancelSignal) {
|
|
32923
|
+
function lowLatencySegmentLoader(url, content, options, callbacks, cancelSignal) {
|
|
32851
32924
|
var segment = content.segment;
|
|
32852
32925
|
var headers = segment.range !== undefined ? {
|
|
32853
32926
|
Range: (0,byte_range/* default */.Z)(segment.range)
|
|
@@ -32888,6 +32961,7 @@ function lowLatencySegmentLoader(url, content, callbacks, cancelSignal) {
|
|
|
32888
32961
|
url: url,
|
|
32889
32962
|
headers: headers,
|
|
32890
32963
|
onData: onData,
|
|
32964
|
+
timeout: options.timeout,
|
|
32891
32965
|
cancelSignal: cancelSignal
|
|
32892
32966
|
}).then(function (res) {
|
|
32893
32967
|
return {
|
|
@@ -32925,21 +32999,22 @@ function lowLatencySegmentLoader(url, content, callbacks, cancelSignal) {
|
|
|
32925
32999
|
* @param {string} url
|
|
32926
33000
|
* @param {Object} content
|
|
32927
33001
|
* @param {boolean} lowLatencyMode
|
|
33002
|
+
* @param {Object} options
|
|
32928
33003
|
* @param {Object} callbacks
|
|
32929
33004
|
* @param {Object} cancelSignal
|
|
32930
33005
|
* @returns {Promise}
|
|
32931
33006
|
*/
|
|
32932
33007
|
|
|
32933
|
-
function regularSegmentLoader(url, content, lowLatencyMode, callbacks, cancelSignal) {
|
|
33008
|
+
function regularSegmentLoader(url, content, lowLatencyMode, options, callbacks, cancelSignal) {
|
|
32934
33009
|
if (content.segment.isInit) {
|
|
32935
|
-
return initSegmentLoader(url, content.segment, cancelSignal, callbacks);
|
|
33010
|
+
return initSegmentLoader(url, content.segment, options, cancelSignal, callbacks);
|
|
32936
33011
|
}
|
|
32937
33012
|
|
|
32938
33013
|
var containerType = inferSegmentContainer(content.adaptation.type, content.representation);
|
|
32939
33014
|
|
|
32940
33015
|
if (lowLatencyMode && (containerType === "mp4" || containerType === undefined)) {
|
|
32941
33016
|
if (fetchIsSupported()) {
|
|
32942
|
-
return lowLatencySegmentLoader(url, content, callbacks, cancelSignal);
|
|
33017
|
+
return lowLatencySegmentLoader(url, content, options, callbacks, cancelSignal);
|
|
32943
33018
|
} else {
|
|
32944
33019
|
(0,warn_once/* default */.Z)("DASH: Your browser does not have the fetch API. You will have " + "a higher chance of rebuffering when playing close to the live edge");
|
|
32945
33020
|
}
|
|
@@ -32952,6 +33027,7 @@ function regularSegmentLoader(url, content, lowLatencyMode, callbacks, cancelSig
|
|
|
32952
33027
|
headers: segment.range !== undefined ? {
|
|
32953
33028
|
Range: (0,byte_range/* default */.Z)(segment.range)
|
|
32954
33029
|
} : undefined,
|
|
33030
|
+
timeout: options.timeout,
|
|
32955
33031
|
cancelSignal: cancelSignal,
|
|
32956
33032
|
onProgress: callbacks.onProgress
|
|
32957
33033
|
}).then(function (data) {
|
|
@@ -32976,7 +33052,7 @@ function generateSegmentLoader(_ref) {
|
|
|
32976
33052
|
* @returns {Observable}
|
|
32977
33053
|
*/
|
|
32978
33054
|
|
|
32979
|
-
function segmentLoader(url, content, cancelSignal, callbacks) {
|
|
33055
|
+
function segmentLoader(url, content, options, cancelSignal, callbacks) {
|
|
32980
33056
|
if (url == null) {
|
|
32981
33057
|
return Promise.resolve({
|
|
32982
33058
|
resultType: "segment-created",
|
|
@@ -32985,7 +33061,7 @@ function generateSegmentLoader(_ref) {
|
|
|
32985
33061
|
}
|
|
32986
33062
|
|
|
32987
33063
|
if (lowLatencyMode || customSegmentLoader === undefined) {
|
|
32988
|
-
return regularSegmentLoader(url, content, lowLatencyMode, callbacks, cancelSignal);
|
|
33064
|
+
return regularSegmentLoader(url, content, lowLatencyMode, options, callbacks, cancelSignal);
|
|
32989
33065
|
}
|
|
32990
33066
|
|
|
32991
33067
|
var args = {
|
|
@@ -32995,6 +33071,7 @@ function generateSegmentLoader(_ref) {
|
|
|
32995
33071
|
representation: content.representation,
|
|
32996
33072
|
segment: content.segment,
|
|
32997
33073
|
transport: "dash",
|
|
33074
|
+
timeout: options.timeout,
|
|
32998
33075
|
url: url
|
|
32999
33076
|
};
|
|
33000
33077
|
return new Promise(function (res, rej) {
|
|
@@ -33002,7 +33079,7 @@ function generateSegmentLoader(_ref) {
|
|
|
33002
33079
|
var hasFinished = false;
|
|
33003
33080
|
/**
|
|
33004
33081
|
* Callback triggered when the custom segment loader has a response.
|
|
33005
|
-
* @param {Object}
|
|
33082
|
+
* @param {Object} _args
|
|
33006
33083
|
*/
|
|
33007
33084
|
|
|
33008
33085
|
var resolve = function resolve(_args) {
|
|
@@ -33067,7 +33144,7 @@ function generateSegmentLoader(_ref) {
|
|
|
33067
33144
|
|
|
33068
33145
|
hasFinished = true;
|
|
33069
33146
|
cancelSignal.deregister(abortCustomLoader);
|
|
33070
|
-
regularSegmentLoader(url, content, lowLatencyMode, callbacks, cancelSignal).then(res, rej);
|
|
33147
|
+
regularSegmentLoader(url, content, lowLatencyMode, options, callbacks, cancelSignal).then(res, rej);
|
|
33071
33148
|
};
|
|
33072
33149
|
|
|
33073
33150
|
var customCallbacks = {
|
|
@@ -33801,12 +33878,13 @@ function generateTextTrackLoader(_ref) {
|
|
|
33801
33878
|
/**
|
|
33802
33879
|
* @param {string|null} url
|
|
33803
33880
|
* @param {Object} content
|
|
33881
|
+
* @param {Object} options
|
|
33804
33882
|
* @param {Object} cancelSignal
|
|
33805
33883
|
* @param {Object} callbacks
|
|
33806
33884
|
* @returns {Promise}
|
|
33807
33885
|
*/
|
|
33808
33886
|
|
|
33809
|
-
function textTrackLoader(url, content, cancelSignal, callbacks) {
|
|
33887
|
+
function textTrackLoader(url, content, options, cancelSignal, callbacks) {
|
|
33810
33888
|
var adaptation = content.adaptation,
|
|
33811
33889
|
representation = content.representation,
|
|
33812
33890
|
segment = content.segment;
|
|
@@ -33820,7 +33898,7 @@ function generateTextTrackLoader(_ref) {
|
|
|
33820
33898
|
}
|
|
33821
33899
|
|
|
33822
33900
|
if (segment.isInit) {
|
|
33823
|
-
return initSegmentLoader(url, segment, cancelSignal, callbacks);
|
|
33901
|
+
return initSegmentLoader(url, segment, options, cancelSignal, callbacks);
|
|
33824
33902
|
}
|
|
33825
33903
|
|
|
33826
33904
|
var containerType = inferSegmentContainer(adaptation.type, representation);
|
|
@@ -33828,7 +33906,7 @@ function generateTextTrackLoader(_ref) {
|
|
|
33828
33906
|
|
|
33829
33907
|
if (lowLatencyMode && seemsToBeMP4) {
|
|
33830
33908
|
if (fetchIsSupported()) {
|
|
33831
|
-
return lowLatencySegmentLoader(url, content, callbacks, cancelSignal);
|
|
33909
|
+
return lowLatencySegmentLoader(url, content, options, callbacks, cancelSignal);
|
|
33832
33910
|
} else {
|
|
33833
33911
|
(0,warn_once/* default */.Z)("DASH: Your browser does not have the fetch API. You will have " + "a higher chance of rebuffering when playing close to the live edge");
|
|
33834
33912
|
}
|
|
@@ -33841,6 +33919,7 @@ function generateTextTrackLoader(_ref) {
|
|
|
33841
33919
|
headers: Array.isArray(range) ? {
|
|
33842
33920
|
Range: (0,byte_range/* default */.Z)(range)
|
|
33843
33921
|
} : null,
|
|
33922
|
+
timeout: options.timeout,
|
|
33844
33923
|
onProgress: callbacks.onProgress,
|
|
33845
33924
|
cancelSignal: cancelSignal
|
|
33846
33925
|
}).then(function (data) {
|
|
@@ -33857,6 +33936,7 @@ function generateTextTrackLoader(_ref) {
|
|
|
33857
33936
|
headers: Array.isArray(range) ? {
|
|
33858
33937
|
Range: (0,byte_range/* default */.Z)(range)
|
|
33859
33938
|
} : null,
|
|
33939
|
+
timeout: options.timeout,
|
|
33860
33940
|
onProgress: callbacks.onProgress,
|
|
33861
33941
|
cancelSignal: cancelSignal
|
|
33862
33942
|
}).then(function (data) {
|
|
@@ -37287,13 +37367,14 @@ function isMP4EmbeddedTrack(representation) {
|
|
|
37287
37367
|
* Segment loader triggered if there was no custom-defined one in the API.
|
|
37288
37368
|
* @param {string} url
|
|
37289
37369
|
* @param {Object} content
|
|
37370
|
+
* @param {Object} loaderOptions
|
|
37290
37371
|
* @param {Object} callbacks
|
|
37291
37372
|
* @param {Object} cancelSignal
|
|
37292
37373
|
* @param {boolean} checkMediaSegmentIntegrity
|
|
37293
37374
|
* @returns {Promise}
|
|
37294
37375
|
*/
|
|
37295
37376
|
|
|
37296
|
-
function regularSegmentLoader(url, content, callbacks, cancelSignal, checkMediaSegmentIntegrity) {
|
|
37377
|
+
function regularSegmentLoader(url, content, callbacks, loaderOptions, cancelSignal, checkMediaSegmentIntegrity) {
|
|
37297
37378
|
var headers;
|
|
37298
37379
|
var range = content.segment.range;
|
|
37299
37380
|
|
|
@@ -37307,6 +37388,7 @@ function regularSegmentLoader(url, content, callbacks, cancelSignal, checkMediaS
|
|
|
37307
37388
|
url: url,
|
|
37308
37389
|
responseType: "arraybuffer",
|
|
37309
37390
|
headers: headers,
|
|
37391
|
+
timeout: loaderOptions.timeout,
|
|
37310
37392
|
cancelSignal: cancelSignal,
|
|
37311
37393
|
onProgress: callbacks.onProgress
|
|
37312
37394
|
}).then(function (data) {
|
|
@@ -37338,7 +37420,7 @@ function regularSegmentLoader(url, content, callbacks, cancelSignal, checkMediaS
|
|
|
37338
37420
|
var generateSegmentLoader = function generateSegmentLoader(_ref) {
|
|
37339
37421
|
var checkMediaSegmentIntegrity = _ref.checkMediaSegmentIntegrity,
|
|
37340
37422
|
customSegmentLoader = _ref.customSegmentLoader;
|
|
37341
|
-
return function (url, content, cancelSignal, callbacks) {
|
|
37423
|
+
return function (url, content, loaderOptions, cancelSignal, callbacks) {
|
|
37342
37424
|
var segment = content.segment,
|
|
37343
37425
|
manifest = content.manifest,
|
|
37344
37426
|
period = content.period,
|
|
@@ -37413,11 +37495,12 @@ var generateSegmentLoader = function generateSegmentLoader(_ref) {
|
|
|
37413
37495
|
representation: representation,
|
|
37414
37496
|
segment: segment,
|
|
37415
37497
|
transport: "smooth",
|
|
37498
|
+
timeout: loaderOptions.timeout,
|
|
37416
37499
|
url: url
|
|
37417
37500
|
};
|
|
37418
37501
|
|
|
37419
37502
|
if (typeof customSegmentLoader !== "function") {
|
|
37420
|
-
return regularSegmentLoader(url, content, callbacks, cancelSignal, checkMediaSegmentIntegrity);
|
|
37503
|
+
return regularSegmentLoader(url, content, callbacks, loaderOptions, cancelSignal, checkMediaSegmentIntegrity);
|
|
37421
37504
|
}
|
|
37422
37505
|
|
|
37423
37506
|
return new Promise(function (res, rej) {
|
|
@@ -37500,7 +37583,7 @@ var generateSegmentLoader = function generateSegmentLoader(_ref) {
|
|
|
37500
37583
|
|
|
37501
37584
|
hasFinished = true;
|
|
37502
37585
|
cancelSignal.deregister(abortCustomLoader);
|
|
37503
|
-
regularSegmentLoader(url, content, callbacks, cancelSignal, checkMediaSegmentIntegrity).then(res, rej);
|
|
37586
|
+
regularSegmentLoader(url, content, callbacks, loaderOptions, cancelSignal, checkMediaSegmentIntegrity).then(res, rej);
|
|
37504
37587
|
};
|
|
37505
37588
|
|
|
37506
37589
|
var customCallbacks = {
|
|
@@ -37592,11 +37675,11 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37592
37675
|
}
|
|
37593
37676
|
}
|
|
37594
37677
|
|
|
37595
|
-
/* harmony default export */ function pipelines(
|
|
37596
|
-
var smoothManifestParser = smooth(
|
|
37597
|
-
var segmentLoader = segment_loader(
|
|
37678
|
+
/* harmony default export */ function pipelines(transportOptions) {
|
|
37679
|
+
var smoothManifestParser = smooth(transportOptions);
|
|
37680
|
+
var segmentLoader = segment_loader(transportOptions);
|
|
37598
37681
|
var manifestLoaderOptions = {
|
|
37599
|
-
customManifestLoader:
|
|
37682
|
+
customManifestLoader: transportOptions.manifestLoader
|
|
37600
37683
|
};
|
|
37601
37684
|
var manifestLoader = (0,generate_manifest_loader/* default */.Z)(manifestLoaderOptions, "text");
|
|
37602
37685
|
var manifestPipeline = {
|
|
@@ -37643,9 +37726,9 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37643
37726
|
|
|
37644
37727
|
var parserResult = smoothManifestParser(documentData, url, manifestReceivedTime);
|
|
37645
37728
|
var manifest = new src_manifest/* default */.ZP(parserResult, {
|
|
37646
|
-
representationFilter:
|
|
37647
|
-
supplementaryImageTracks:
|
|
37648
|
-
supplementaryTextTracks:
|
|
37729
|
+
representationFilter: transportOptions.representationFilter,
|
|
37730
|
+
supplementaryImageTracks: transportOptions.supplementaryImageTracks,
|
|
37731
|
+
supplementaryTextTracks: transportOptions.supplementaryTextTracks
|
|
37649
37732
|
});
|
|
37650
37733
|
return {
|
|
37651
37734
|
manifest: manifest,
|
|
@@ -37663,12 +37746,13 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37663
37746
|
* Load a Smooth audio/video segment.
|
|
37664
37747
|
* @param {string|null} url
|
|
37665
37748
|
* @param {Object} content
|
|
37749
|
+
* @param {Object} loaderOptions
|
|
37666
37750
|
* @param {Object} cancelSignal
|
|
37667
37751
|
* @param {Object} callbacks
|
|
37668
37752
|
* @returns {Promise}
|
|
37669
37753
|
*/
|
|
37670
|
-
loadSegment: function loadSegment(url, content, cancelSignal, callbacks) {
|
|
37671
|
-
return segmentLoader(url, content, cancelSignal, callbacks);
|
|
37754
|
+
loadSegment: function loadSegment(url, content, loaderOptions, cancelSignal, callbacks) {
|
|
37755
|
+
return segmentLoader(url, content, loaderOptions, cancelSignal, callbacks);
|
|
37672
37756
|
},
|
|
37673
37757
|
parseSegment: function parseSegment(loadedSegment, content, initTimescale) {
|
|
37674
37758
|
var _a, _b;
|
|
@@ -37743,7 +37827,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37743
37827
|
}
|
|
37744
37828
|
};
|
|
37745
37829
|
var textTrackPipeline = {
|
|
37746
|
-
loadSegment: function loadSegment(url, content, cancelSignal, callbacks) {
|
|
37830
|
+
loadSegment: function loadSegment(url, content, loaderOptions, cancelSignal, callbacks) {
|
|
37747
37831
|
var segment = content.segment,
|
|
37748
37832
|
representation = content.representation;
|
|
37749
37833
|
|
|
@@ -37760,6 +37844,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37760
37844
|
return (0,request/* default */.ZP)({
|
|
37761
37845
|
url: url,
|
|
37762
37846
|
responseType: "text",
|
|
37847
|
+
timeout: loaderOptions.timeout,
|
|
37763
37848
|
cancelSignal: cancelSignal,
|
|
37764
37849
|
onProgress: callbacks.onProgress
|
|
37765
37850
|
}).then(function (data) {
|
|
@@ -37772,10 +37857,11 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37772
37857
|
return (0,request/* default */.ZP)({
|
|
37773
37858
|
url: url,
|
|
37774
37859
|
responseType: "arraybuffer",
|
|
37860
|
+
timeout: loaderOptions.timeout,
|
|
37775
37861
|
cancelSignal: cancelSignal,
|
|
37776
37862
|
onProgress: callbacks.onProgress
|
|
37777
37863
|
}).then(function (data) {
|
|
37778
|
-
if (
|
|
37864
|
+
if (transportOptions.checkMediaSegmentIntegrity !== true) {
|
|
37779
37865
|
return {
|
|
37780
37866
|
resultType: "segment-loaded",
|
|
37781
37867
|
resultData: data
|
|
@@ -37946,7 +38032,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37946
38032
|
}
|
|
37947
38033
|
};
|
|
37948
38034
|
var imageTrackPipeline = {
|
|
37949
|
-
loadSegment: function loadSegment(url, content, cancelSignal, callbacks) {
|
|
38035
|
+
loadSegment: function loadSegment(url, content, loaderOptions, cancelSignal, callbacks) {
|
|
37950
38036
|
return (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee() {
|
|
37951
38037
|
var data;
|
|
37952
38038
|
return regenerator_default().wrap(function _callee$(_context) {
|
|
@@ -37968,6 +38054,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
37968
38054
|
return (0,request/* default */.ZP)({
|
|
37969
38055
|
url: url,
|
|
37970
38056
|
responseType: "arraybuffer",
|
|
38057
|
+
timeout: loaderOptions.timeout,
|
|
37971
38058
|
onProgress: callbacks.onProgress,
|
|
37972
38059
|
cancelSignal: cancelSignal
|
|
37973
38060
|
});
|
|
@@ -38291,7 +38378,7 @@ var custom_loader_error = __webpack_require__(7839);
|
|
|
38291
38378
|
*/
|
|
38292
38379
|
|
|
38293
38380
|
function callCustomManifestLoader(customManifestLoader, fallbackManifestLoader) {
|
|
38294
|
-
return function (url, cancelSignal) {
|
|
38381
|
+
return function (url, loaderOptions, cancelSignal) {
|
|
38295
38382
|
return new Promise(function (res, rej) {
|
|
38296
38383
|
var timeAPIsDelta = Date.now() - performance.now();
|
|
38297
38384
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
@@ -38354,7 +38441,7 @@ function callCustomManifestLoader(customManifestLoader, fallbackManifestLoader)
|
|
|
38354
38441
|
|
|
38355
38442
|
hasFinished = true;
|
|
38356
38443
|
cancelSignal.deregister(abortCustomLoader);
|
|
38357
|
-
fallbackManifestLoader(url, cancelSignal).then(res, rej);
|
|
38444
|
+
fallbackManifestLoader(url, loaderOptions, cancelSignal).then(res, rej);
|
|
38358
38445
|
};
|
|
38359
38446
|
|
|
38360
38447
|
var callbacks = {
|
|
@@ -38362,7 +38449,9 @@ function callCustomManifestLoader(customManifestLoader, fallbackManifestLoader)
|
|
|
38362
38449
|
resolve: resolve,
|
|
38363
38450
|
fallback: fallback
|
|
38364
38451
|
};
|
|
38365
|
-
var abort = customManifestLoader(url, callbacks
|
|
38452
|
+
var abort = customManifestLoader(url, callbacks, {
|
|
38453
|
+
timeout: loaderOptions.timeout
|
|
38454
|
+
});
|
|
38366
38455
|
cancelSignal.register(abortCustomLoader);
|
|
38367
38456
|
/**
|
|
38368
38457
|
* The logic to run when the custom loader is cancelled while pending.
|
|
@@ -38406,12 +38495,12 @@ function callCustomManifestLoader(customManifestLoader, fallbackManifestLoader)
|
|
|
38406
38495
|
|
|
38407
38496
|
/**
|
|
38408
38497
|
* Manifest loader triggered if there was no custom-defined one in the API.
|
|
38409
|
-
* @param {string}
|
|
38410
|
-
* @returns {
|
|
38498
|
+
* @param {string} preferredType
|
|
38499
|
+
* @returns {Function}
|
|
38411
38500
|
*/
|
|
38412
38501
|
|
|
38413
38502
|
function generateRegularManifestLoader(preferredType) {
|
|
38414
|
-
return function regularManifestLoader(url, cancelSignal) {
|
|
38503
|
+
return function regularManifestLoader(url, loaderOptions, cancelSignal) {
|
|
38415
38504
|
if (url === undefined) {
|
|
38416
38505
|
throw new Error("Cannot perform HTTP(s) request. URL not known");
|
|
38417
38506
|
} // What follows could be written in a single line, but TypeScript wouldn't
|
|
@@ -38424,6 +38513,7 @@ function generateRegularManifestLoader(preferredType) {
|
|
|
38424
38513
|
return (0,request/* default */.ZP)({
|
|
38425
38514
|
url: url,
|
|
38426
38515
|
responseType: "arraybuffer",
|
|
38516
|
+
timeout: loaderOptions.timeout,
|
|
38427
38517
|
cancelSignal: cancelSignal
|
|
38428
38518
|
});
|
|
38429
38519
|
|
|
@@ -38431,6 +38521,7 @@ function generateRegularManifestLoader(preferredType) {
|
|
|
38431
38521
|
return (0,request/* default */.ZP)({
|
|
38432
38522
|
url: url,
|
|
38433
38523
|
responseType: "text",
|
|
38524
|
+
timeout: loaderOptions.timeout,
|
|
38434
38525
|
cancelSignal: cancelSignal
|
|
38435
38526
|
});
|
|
38436
38527
|
|
|
@@ -38438,6 +38529,7 @@ function generateRegularManifestLoader(preferredType) {
|
|
|
38438
38529
|
return (0,request/* default */.ZP)({
|
|
38439
38530
|
url: url,
|
|
38440
38531
|
responseType: "document",
|
|
38532
|
+
timeout: loaderOptions.timeout,
|
|
38441
38533
|
cancelSignal: cancelSignal
|
|
38442
38534
|
});
|
|
38443
38535
|
|
|
@@ -41474,8 +41566,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
41474
41566
|
|
|
41475
41567
|
// UNUSED EXPORTS: fetchIsSupported, fetchRequest, xhr
|
|
41476
41568
|
|
|
41477
|
-
// EXTERNAL MODULE: ./src/config.ts + 2 modules
|
|
41478
|
-
var config = __webpack_require__(6872);
|
|
41479
41569
|
// EXTERNAL MODULE: ./src/errors/request_error.ts
|
|
41480
41570
|
var request_error = __webpack_require__(9105);
|
|
41481
41571
|
// EXTERNAL MODULE: ./src/utils/is_non_empty_string.ts
|
|
@@ -41501,17 +41591,13 @@ var is_null_or_undefined = __webpack_require__(1946);
|
|
|
41501
41591
|
|
|
41502
41592
|
|
|
41503
41593
|
|
|
41504
|
-
|
|
41505
41594
|
var DEFAULT_RESPONSE_TYPE = "json";
|
|
41506
41595
|
function request(options) {
|
|
41507
|
-
var _config$getCurrent = config/* default.getCurrent */.Z.getCurrent(),
|
|
41508
|
-
DEFAULT_REQUEST_TIMEOUT = _config$getCurrent.DEFAULT_REQUEST_TIMEOUT;
|
|
41509
|
-
|
|
41510
41596
|
var requestOptions = {
|
|
41511
41597
|
url: options.url,
|
|
41512
41598
|
headers: options.headers,
|
|
41513
41599
|
responseType: (0,is_null_or_undefined/* default */.Z)(options.responseType) ? DEFAULT_RESPONSE_TYPE : options.responseType,
|
|
41514
|
-
timeout:
|
|
41600
|
+
timeout: options.timeout
|
|
41515
41601
|
};
|
|
41516
41602
|
return new Promise(function (resolve, reject) {
|
|
41517
41603
|
var onProgress = options.onProgress,
|
|
@@ -41522,9 +41608,20 @@ function request(options) {
|
|
|
41522
41608
|
timeout = requestOptions.timeout;
|
|
41523
41609
|
var xhr = new XMLHttpRequest();
|
|
41524
41610
|
xhr.open("GET", url, true);
|
|
41611
|
+
var timeoutId;
|
|
41525
41612
|
|
|
41526
|
-
if (timeout
|
|
41527
|
-
xhr.timeout = timeout;
|
|
41613
|
+
if (timeout !== undefined) {
|
|
41614
|
+
xhr.timeout = timeout; // We've seen on some browser (mainly on some LG TVs), that `xhr.timeout`
|
|
41615
|
+
// was either not supported or did not function properly despite the
|
|
41616
|
+
// browser being recent enough to support it.
|
|
41617
|
+
// That's why we also start a manual timeout. We do this a little later
|
|
41618
|
+
// than the "native one" performed on the xhr assuming that the latter
|
|
41619
|
+
// is more precise, it might also be more efficient.
|
|
41620
|
+
|
|
41621
|
+
timeoutId = window.setTimeout(function () {
|
|
41622
|
+
clearCancellingProcess();
|
|
41623
|
+
reject(new request_error/* default */.Z(url, xhr.status, "TIMEOUT", xhr));
|
|
41624
|
+
}, timeout + 3000);
|
|
41528
41625
|
}
|
|
41529
41626
|
|
|
41530
41627
|
xhr.responseType = responseType;
|
|
@@ -41549,6 +41646,8 @@ function request(options) {
|
|
|
41549
41646
|
|
|
41550
41647
|
if (cancelSignal !== undefined) {
|
|
41551
41648
|
deregisterCancellationListener = cancelSignal.register(function abortRequest(err) {
|
|
41649
|
+
clearCancellingProcess();
|
|
41650
|
+
|
|
41552
41651
|
if (!(0,is_null_or_undefined/* default */.Z)(xhr) && xhr.readyState !== 4) {
|
|
41553
41652
|
xhr.abort();
|
|
41554
41653
|
}
|
|
@@ -41562,18 +41661,12 @@ function request(options) {
|
|
|
41562
41661
|
}
|
|
41563
41662
|
|
|
41564
41663
|
xhr.onerror = function onXHRError() {
|
|
41565
|
-
|
|
41566
|
-
deregisterCancellationListener();
|
|
41567
|
-
}
|
|
41568
|
-
|
|
41664
|
+
clearCancellingProcess();
|
|
41569
41665
|
reject(new request_error/* default */.Z(url, xhr.status, "ERROR_EVENT", xhr));
|
|
41570
41666
|
};
|
|
41571
41667
|
|
|
41572
41668
|
xhr.ontimeout = function onXHRTimeout() {
|
|
41573
|
-
|
|
41574
|
-
deregisterCancellationListener();
|
|
41575
|
-
}
|
|
41576
|
-
|
|
41669
|
+
clearCancellingProcess();
|
|
41577
41670
|
reject(new request_error/* default */.Z(url, xhr.status, "TIMEOUT", xhr));
|
|
41578
41671
|
};
|
|
41579
41672
|
|
|
@@ -41593,9 +41686,7 @@ function request(options) {
|
|
|
41593
41686
|
|
|
41594
41687
|
xhr.onload = function onXHRLoad(event) {
|
|
41595
41688
|
if (xhr.readyState === 4) {
|
|
41596
|
-
|
|
41597
|
-
deregisterCancellationListener();
|
|
41598
|
-
}
|
|
41689
|
+
clearCancellingProcess();
|
|
41599
41690
|
|
|
41600
41691
|
if (xhr.status >= 200 && xhr.status < 300) {
|
|
41601
41692
|
var receivedTime = performance.now();
|
|
@@ -41638,6 +41729,19 @@ function request(options) {
|
|
|
41638
41729
|
};
|
|
41639
41730
|
|
|
41640
41731
|
xhr.send();
|
|
41732
|
+
/**
|
|
41733
|
+
* Clear resources and timers created to handle cancellation and timeouts.
|
|
41734
|
+
*/
|
|
41735
|
+
|
|
41736
|
+
function clearCancellingProcess() {
|
|
41737
|
+
if (timeoutId !== undefined) {
|
|
41738
|
+
clearTimeout(timeoutId);
|
|
41739
|
+
}
|
|
41740
|
+
|
|
41741
|
+
if (deregisterCancellationListener !== null) {
|
|
41742
|
+
deregisterCancellationListener();
|
|
41743
|
+
}
|
|
41744
|
+
}
|
|
41641
41745
|
});
|
|
41642
41746
|
}
|
|
41643
41747
|
/**
|
|
@@ -42680,8 +42784,7 @@ var CancellationSignal = /*#__PURE__*/function () {
|
|
|
42680
42784
|
return CancellationSignal;
|
|
42681
42785
|
}();
|
|
42682
42786
|
/**
|
|
42683
|
-
* Error created when a task is cancelled
|
|
42684
|
-
*
|
|
42787
|
+
* Error created when a task is cancelled.
|
|
42685
42788
|
* @class CancellationError
|
|
42686
42789
|
* @extends Error
|
|
42687
42790
|
*/
|
|
@@ -43647,16 +43750,29 @@ var config = {
|
|
|
43647
43750
|
|
|
43648
43751
|
/***/ }),
|
|
43649
43752
|
|
|
43650
|
-
/***/
|
|
43753
|
+
/***/ 2034:
|
|
43651
43754
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
43652
43755
|
|
|
43653
43756
|
"use strict";
|
|
43654
|
-
|
|
43655
|
-
|
|
43656
|
-
|
|
43657
|
-
|
|
43658
|
-
|
|
43659
|
-
|
|
43757
|
+
|
|
43758
|
+
// EXPORTS
|
|
43759
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
43760
|
+
"z": function() { return /* binding */ concat; }
|
|
43761
|
+
});
|
|
43762
|
+
|
|
43763
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js
|
|
43764
|
+
var mergeAll = __webpack_require__(4367);
|
|
43765
|
+
;// CONCATENATED MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js
|
|
43766
|
+
|
|
43767
|
+
function concatAll() {
|
|
43768
|
+
return (0,mergeAll/* mergeAll */.J)(1);
|
|
43769
|
+
}
|
|
43770
|
+
//# sourceMappingURL=concatAll.js.map
|
|
43771
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/util/args.js
|
|
43772
|
+
var util_args = __webpack_require__(2457);
|
|
43773
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/from.js + 8 modules
|
|
43774
|
+
var from = __webpack_require__(3102);
|
|
43775
|
+
;// CONCATENATED MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js
|
|
43660
43776
|
|
|
43661
43777
|
|
|
43662
43778
|
|
|
@@ -43665,7 +43781,7 @@ function concat() {
|
|
|
43665
43781
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
43666
43782
|
args[_i] = arguments[_i];
|
|
43667
43783
|
}
|
|
43668
|
-
return
|
|
43784
|
+
return concatAll()((0,from/* from */.D)(args, (0,util_args/* popScheduler */.yG)(args)));
|
|
43669
43785
|
}
|
|
43670
43786
|
//# sourceMappingURL=concat.js.map
|
|
43671
43787
|
|
|
@@ -44152,29 +44268,6 @@ function process(asyncIterable, subscriber) {
|
|
|
44152
44268
|
|
|
44153
44269
|
/***/ }),
|
|
44154
44270
|
|
|
44155
|
-
/***/ 6697:
|
|
44156
|
-
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
44157
|
-
|
|
44158
|
-
"use strict";
|
|
44159
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
44160
|
-
/* harmony export */ "F": function() { return /* binding */ interval; }
|
|
44161
|
-
/* harmony export */ });
|
|
44162
|
-
/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7991);
|
|
44163
|
-
/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6625);
|
|
44164
|
-
|
|
44165
|
-
|
|
44166
|
-
function interval(period, scheduler) {
|
|
44167
|
-
if (period === void 0) { period = 0; }
|
|
44168
|
-
if (scheduler === void 0) { scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__/* .asyncScheduler */ .z; }
|
|
44169
|
-
if (period < 0) {
|
|
44170
|
-
period = 0;
|
|
44171
|
-
}
|
|
44172
|
-
return (0,_timer__WEBPACK_IMPORTED_MODULE_1__/* .timer */ .H)(period, period, scheduler);
|
|
44173
|
-
}
|
|
44174
|
-
//# sourceMappingURL=interval.js.map
|
|
44175
|
-
|
|
44176
|
-
/***/ }),
|
|
44177
|
-
|
|
44178
44271
|
/***/ 3071:
|
|
44179
44272
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
44180
44273
|
|
|
@@ -44413,22 +44506,6 @@ function catchError(selector) {
|
|
|
44413
44506
|
|
|
44414
44507
|
/***/ }),
|
|
44415
44508
|
|
|
44416
|
-
/***/ 9834:
|
|
44417
|
-
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
44418
|
-
|
|
44419
|
-
"use strict";
|
|
44420
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
44421
|
-
/* harmony export */ "u": function() { return /* binding */ concatAll; }
|
|
44422
|
-
/* harmony export */ });
|
|
44423
|
-
/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4367);
|
|
44424
|
-
|
|
44425
|
-
function concatAll() {
|
|
44426
|
-
return (0,_mergeAll__WEBPACK_IMPORTED_MODULE_0__/* .mergeAll */ .J)(1);
|
|
44427
|
-
}
|
|
44428
|
-
//# sourceMappingURL=concatAll.js.map
|
|
44429
|
-
|
|
44430
|
-
/***/ }),
|
|
44431
|
-
|
|
44432
44509
|
/***/ 3741:
|
|
44433
44510
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
44434
44511
|
|
|
@@ -44839,7 +44916,7 @@ function shareReplay(configOrBufferSize, windowTime, scheduler) {
|
|
|
44839
44916
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
44840
44917
|
/* harmony export */ "O": function() { return /* binding */ startWith; }
|
|
44841
44918
|
/* harmony export */ });
|
|
44842
|
-
/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
44919
|
+
/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2034);
|
|
44843
44920
|
/* harmony import */ var _util_args__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2457);
|
|
44844
44921
|
/* harmony import */ var _util_lift__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6798);
|
|
44845
44922
|
|
|
@@ -46933,8 +47010,8 @@ function maybeSchedule(scheduler, execute, subscription) {
|
|
|
46933
47010
|
//# sourceMappingURL=combineLatest.js.map
|
|
46934
47011
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/startWith.js
|
|
46935
47012
|
var startWith = __webpack_require__(6108);
|
|
46936
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js
|
|
46937
|
-
var concat = __webpack_require__(
|
|
47013
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/concat.js + 1 modules
|
|
47014
|
+
var concat = __webpack_require__(2034);
|
|
46938
47015
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js
|
|
46939
47016
|
var switchMap = __webpack_require__(4978);
|
|
46940
47017
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/merge.js
|
|
@@ -47833,6 +47910,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
47833
47910
|
|
|
47834
47911
|
|
|
47835
47912
|
|
|
47913
|
+
|
|
47836
47914
|
/**
|
|
47837
47915
|
* Class allowing to facilitate the task of loading and parsing a Manifest.
|
|
47838
47916
|
* @class ManifestFetcher
|
|
@@ -47888,6 +47966,7 @@ var ManifestFetcher = /*#__PURE__*/function () {
|
|
|
47888
47966
|
var _this = this;
|
|
47889
47967
|
|
|
47890
47968
|
return new Observable/* Observable */.y(function (obs) {
|
|
47969
|
+
var settings = _this._settings;
|
|
47891
47970
|
var pipelines = _this._pipelines;
|
|
47892
47971
|
var requestUrl = url !== null && url !== void 0 ? url : _this._manifestUrl;
|
|
47893
47972
|
/** `true` if the loading pipeline is already completely executed. */
|
|
@@ -47951,16 +48030,23 @@ var ManifestFetcher = /*#__PURE__*/function () {
|
|
|
47951
48030
|
* Call the loader part of the pipeline, retrying if it fails according
|
|
47952
48031
|
* to the current settings.
|
|
47953
48032
|
* Returns the Promise of the last attempt.
|
|
47954
|
-
* @param {string | undefined}
|
|
48033
|
+
* @param {string | undefined} manifestUrl
|
|
47955
48034
|
* @returns {Promise}
|
|
47956
48035
|
*/
|
|
47957
48036
|
|
|
47958
48037
|
|
|
47959
48038
|
function callLoaderWithRetries(manifestUrl) {
|
|
47960
48039
|
var loadManifest = pipelines.loadManifest;
|
|
48040
|
+
var requestTimeout = (0,is_null_or_undefined/* default */.Z)(settings.requestTimeout) ? config/* default.getCurrent */.Z.getCurrent().DEFAULT_REQUEST_TIMEOUT : settings.requestTimeout;
|
|
48041
|
+
|
|
48042
|
+
if (requestTimeout < 0) {
|
|
48043
|
+
requestTimeout = undefined;
|
|
48044
|
+
}
|
|
47961
48045
|
|
|
47962
48046
|
var callLoader = function callLoader() {
|
|
47963
|
-
return loadManifest(manifestUrl,
|
|
48047
|
+
return loadManifest(manifestUrl, {
|
|
48048
|
+
timeout: requestTimeout
|
|
48049
|
+
}, canceller.signal);
|
|
47964
48050
|
};
|
|
47965
48051
|
|
|
47966
48052
|
return tryRequestPromiseWithBackoff(callLoader, backoffSettings, canceller.signal);
|
|
@@ -48934,11 +49020,15 @@ var generateRequestID = (0,id_generator/* default */.Z)();
|
|
|
48934
49020
|
*/
|
|
48935
49021
|
|
|
48936
49022
|
function segment_fetcher_createSegmentFetcher(bufferType, pipeline, callbacks, options) {
|
|
49023
|
+
var requestOptions = {
|
|
49024
|
+
timeout: options.requestTimeout < 0 ? undefined : options.requestTimeout
|
|
49025
|
+
};
|
|
48937
49026
|
/**
|
|
48938
49027
|
* Cache audio and video initialization segments.
|
|
48939
49028
|
* This allows to avoid doing too many requests for what are usually very
|
|
48940
49029
|
* small files.
|
|
48941
49030
|
*/
|
|
49031
|
+
|
|
48942
49032
|
var cache = (0,array_includes/* default */.Z)(["audio", "video"], bufferType) ? new initialization_segment_cache() : undefined;
|
|
48943
49033
|
var loadSegment = pipeline.loadSegment,
|
|
48944
49034
|
parseSegment = pipeline.parseSegment;
|
|
@@ -49136,7 +49226,7 @@ function segment_fetcher_createSegmentFetcher(bufferType, pipeline, callbacks, o
|
|
|
49136
49226
|
*/
|
|
49137
49227
|
|
|
49138
49228
|
function callLoaderWithUrl(url, cancellationSignal) {
|
|
49139
|
-
return loadSegment(url, content, cancellationSignal, loaderCallbacks);
|
|
49229
|
+
return loadSegment(url, content, requestOptions, cancellationSignal, loaderCallbacks);
|
|
49140
49230
|
}
|
|
49141
49231
|
/**
|
|
49142
49232
|
* Generate function allowing to parse a loaded segment.
|
|
@@ -49222,10 +49312,12 @@ function segment_fetcher_createSegmentFetcher(bufferType, pipeline, callbacks, o
|
|
|
49222
49312
|
function getSegmentFetcherOptions(bufferType, _ref) {
|
|
49223
49313
|
var maxRetryRegular = _ref.maxRetryRegular,
|
|
49224
49314
|
maxRetryOffline = _ref.maxRetryOffline,
|
|
49225
|
-
lowLatencyMode = _ref.lowLatencyMode
|
|
49315
|
+
lowLatencyMode = _ref.lowLatencyMode,
|
|
49316
|
+
requestTimeout = _ref.requestTimeout;
|
|
49226
49317
|
|
|
49227
49318
|
var _config$getCurrent = config/* default.getCurrent */.Z.getCurrent(),
|
|
49228
49319
|
DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR = _config$getCurrent.DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR,
|
|
49320
|
+
DEFAULT_REQUEST_TIMEOUT = _config$getCurrent.DEFAULT_REQUEST_TIMEOUT,
|
|
49229
49321
|
DEFAULT_MAX_REQUESTS_RETRY_ON_OFFLINE = _config$getCurrent.DEFAULT_MAX_REQUESTS_RETRY_ON_OFFLINE,
|
|
49230
49322
|
INITIAL_BACKOFF_DELAY_BASE = _config$getCurrent.INITIAL_BACKOFF_DELAY_BASE,
|
|
49231
49323
|
MAX_BACKOFF_DELAY_BASE = _config$getCurrent.MAX_BACKOFF_DELAY_BASE;
|
|
@@ -49234,7 +49326,8 @@ function getSegmentFetcherOptions(bufferType, _ref) {
|
|
|
49234
49326
|
maxRetryRegular: bufferType === "image" ? 0 : maxRetryRegular !== null && maxRetryRegular !== void 0 ? maxRetryRegular : DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR,
|
|
49235
49327
|
maxRetryOffline: maxRetryOffline !== null && maxRetryOffline !== void 0 ? maxRetryOffline : DEFAULT_MAX_REQUESTS_RETRY_ON_OFFLINE,
|
|
49236
49328
|
baseDelay: lowLatencyMode ? INITIAL_BACKOFF_DELAY_BASE.LOW_LATENCY : INITIAL_BACKOFF_DELAY_BASE.REGULAR,
|
|
49237
|
-
maxDelay: lowLatencyMode ? MAX_BACKOFF_DELAY_BASE.LOW_LATENCY : MAX_BACKOFF_DELAY_BASE.REGULAR
|
|
49329
|
+
maxDelay: lowLatencyMode ? MAX_BACKOFF_DELAY_BASE.LOW_LATENCY : MAX_BACKOFF_DELAY_BASE.REGULAR,
|
|
49330
|
+
requestTimeout: (0,is_null_or_undefined/* default */.Z)(requestTimeout) ? DEFAULT_REQUEST_TIMEOUT : requestTimeout
|
|
49238
49331
|
};
|
|
49239
49332
|
}
|
|
49240
49333
|
;// CONCATENATED MODULE: ./src/core/fetchers/segment/segment_fetcher_creator.ts
|
|
@@ -51588,12 +51681,8 @@ function getInitialTime(manifest, lowLatencyMode, startAt) {
|
|
|
51588
51681
|
var link_drm_and_content = __webpack_require__(9607);
|
|
51589
51682
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/throwError.js
|
|
51590
51683
|
var throwError = __webpack_require__(3610);
|
|
51591
|
-
// EXTERNAL MODULE: ./node_modules/
|
|
51592
|
-
var
|
|
51593
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/tap.js
|
|
51594
|
-
var tap = __webpack_require__(2006);
|
|
51595
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js
|
|
51596
|
-
var fromEvent = __webpack_require__(2401);
|
|
51684
|
+
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
|
|
51685
|
+
var assertThisInitialized = __webpack_require__(7326);
|
|
51597
51686
|
;// CONCATENATED MODULE: ./src/compat/change_source_buffer_type.ts
|
|
51598
51687
|
/**
|
|
51599
51688
|
* Copyright 2015 CANAL+ Group
|
|
@@ -51645,6 +51734,7 @@ var types = __webpack_require__(9612);
|
|
|
51645
51734
|
;// CONCATENATED MODULE: ./src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts
|
|
51646
51735
|
|
|
51647
51736
|
|
|
51737
|
+
|
|
51648
51738
|
/**
|
|
51649
51739
|
* Copyright 2015 CANAL+ Group
|
|
51650
51740
|
*
|
|
@@ -51671,6 +51761,7 @@ var types = __webpack_require__(9612);
|
|
|
51671
51761
|
|
|
51672
51762
|
|
|
51673
51763
|
|
|
51764
|
+
|
|
51674
51765
|
/**
|
|
51675
51766
|
* Allows to push and remove new segments to a SourceBuffer in a FIFO queue (not
|
|
51676
51767
|
* doing so can lead to browser Errors) while keeping an inventory of what has
|
|
@@ -51689,14 +51780,14 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51689
51780
|
* @constructor
|
|
51690
51781
|
* @param {string} bufferType
|
|
51691
51782
|
* @param {string} codec
|
|
51692
|
-
* @param {
|
|
51783
|
+
* @param {MediaSource} mediaSource
|
|
51693
51784
|
*/
|
|
51694
51785
|
function AudioVideoSegmentBuffer(bufferType, codec, mediaSource) {
|
|
51695
51786
|
var _this;
|
|
51696
51787
|
|
|
51697
51788
|
_this = _SegmentBuffer.call(this) || this;
|
|
51698
51789
|
var sourceBuffer = mediaSource.addSourceBuffer(codec);
|
|
51699
|
-
_this.
|
|
51790
|
+
_this._canceller = new task_canceller/* default */.ZP();
|
|
51700
51791
|
_this.bufferType = bufferType;
|
|
51701
51792
|
_this._mediaSource = mediaSource;
|
|
51702
51793
|
_this._sourceBuffer = sourceBuffer;
|
|
@@ -51705,8 +51796,9 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51705
51796
|
_this._lastInitSegment = null;
|
|
51706
51797
|
_this.codec = codec;
|
|
51707
51798
|
|
|
51708
|
-
var
|
|
51709
|
-
|
|
51799
|
+
var onError = _this._onPendingTaskError.bind((0,assertThisInitialized/* default */.Z)(_this));
|
|
51800
|
+
|
|
51801
|
+
var reCheck = _this._flush.bind((0,assertThisInitialized/* default */.Z)(_this)); // Some browsers (happened with firefox 66) sometimes "forget" to send us
|
|
51710
51802
|
// `update` or `updateend` events.
|
|
51711
51803
|
// In that case, we're completely unable to continue the queue here and
|
|
51712
51804
|
// stay locked in a waiting state.
|
|
@@ -51714,15 +51806,23 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51714
51806
|
// SourceBuffer is currently updating.
|
|
51715
51807
|
|
|
51716
51808
|
|
|
51717
|
-
|
|
51718
|
-
|
|
51719
|
-
|
|
51720
|
-
|
|
51721
|
-
|
|
51722
|
-
|
|
51723
|
-
|
|
51724
|
-
|
|
51725
|
-
|
|
51809
|
+
var _config$getCurrent = config/* default.getCurrent */.Z.getCurrent(),
|
|
51810
|
+
SOURCE_BUFFER_FLUSHING_INTERVAL = _config$getCurrent.SOURCE_BUFFER_FLUSHING_INTERVAL;
|
|
51811
|
+
|
|
51812
|
+
var intervalId = setInterval(reCheck, SOURCE_BUFFER_FLUSHING_INTERVAL);
|
|
51813
|
+
|
|
51814
|
+
_this._sourceBuffer.addEventListener("error", onError);
|
|
51815
|
+
|
|
51816
|
+
_this._sourceBuffer.addEventListener("updateend", reCheck);
|
|
51817
|
+
|
|
51818
|
+
_this._canceller.signal.register(function () {
|
|
51819
|
+
clearInterval(intervalId);
|
|
51820
|
+
|
|
51821
|
+
_this._sourceBuffer.removeEventListener("error", onError);
|
|
51822
|
+
|
|
51823
|
+
_this._sourceBuffer.removeEventListener("updateend", reCheck);
|
|
51824
|
+
});
|
|
51825
|
+
|
|
51726
51826
|
return _this;
|
|
51727
51827
|
}
|
|
51728
51828
|
/**
|
|
@@ -51749,29 +51849,31 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51749
51849
|
* `data.chunk` argument to null.
|
|
51750
51850
|
*
|
|
51751
51851
|
* @param {Object} infos
|
|
51752
|
-
* @
|
|
51852
|
+
* @param {Object} cancellationSignal
|
|
51853
|
+
* @returns {Promise}
|
|
51753
51854
|
*/
|
|
51754
51855
|
|
|
51755
51856
|
|
|
51756
51857
|
var _proto = AudioVideoSegmentBuffer.prototype;
|
|
51757
51858
|
|
|
51758
|
-
_proto.pushChunk = function pushChunk(infos) {
|
|
51859
|
+
_proto.pushChunk = function pushChunk(infos, cancellationSignal) {
|
|
51759
51860
|
assertPushedDataIsBufferSource(infos);
|
|
51760
51861
|
log/* default.debug */.Z.debug("AVSB: receiving order to push data to the SourceBuffer", this.bufferType, (0,utils/* getLoggableSegmentId */.K)(infos.inventoryInfos));
|
|
51761
51862
|
return this._addToQueue({
|
|
51762
51863
|
type: types/* SegmentBufferOperation.Push */.f.Push,
|
|
51763
51864
|
value: infos
|
|
51764
|
-
});
|
|
51865
|
+
}, cancellationSignal);
|
|
51765
51866
|
}
|
|
51766
51867
|
/**
|
|
51767
51868
|
* Remove buffered data (added to the same FIFO queue than `pushChunk`).
|
|
51768
51869
|
* @param {number} start - start position, in seconds
|
|
51769
51870
|
* @param {number} end - end position, in seconds
|
|
51770
|
-
* @
|
|
51871
|
+
* @param {Object} cancellationSignal
|
|
51872
|
+
* @returns {Promise}
|
|
51771
51873
|
*/
|
|
51772
51874
|
;
|
|
51773
51875
|
|
|
51774
|
-
_proto.removeBuffer = function removeBuffer(start, end) {
|
|
51876
|
+
_proto.removeBuffer = function removeBuffer(start, end, cancellationSignal) {
|
|
51775
51877
|
log/* default.debug */.Z.debug("AVSB: receiving order to remove data from the SourceBuffer", this.bufferType, start, end);
|
|
51776
51878
|
return this._addToQueue({
|
|
51777
51879
|
type: types/* SegmentBufferOperation.Remove */.f.Remove,
|
|
@@ -51779,25 +51881,25 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51779
51881
|
start: start,
|
|
51780
51882
|
end: end
|
|
51781
51883
|
}
|
|
51782
|
-
});
|
|
51884
|
+
}, cancellationSignal);
|
|
51783
51885
|
}
|
|
51784
51886
|
/**
|
|
51785
51887
|
* Indicate that every chunks from a Segment has been given to pushChunk so
|
|
51786
51888
|
* far.
|
|
51787
51889
|
* This will update our internal Segment inventory accordingly.
|
|
51788
|
-
* The returned
|
|
51789
|
-
*
|
|
51890
|
+
* The returned Promise will resolve once the whole segment has been pushed
|
|
51891
|
+
* and this indication is acknowledged.
|
|
51790
51892
|
* @param {Object} infos
|
|
51791
|
-
* @returns {
|
|
51893
|
+
* @returns {Promise}
|
|
51792
51894
|
*/
|
|
51793
51895
|
;
|
|
51794
51896
|
|
|
51795
|
-
_proto.endOfSegment = function endOfSegment(infos) {
|
|
51897
|
+
_proto.endOfSegment = function endOfSegment(infos, cancellationSignal) {
|
|
51796
51898
|
log/* default.debug */.Z.debug("AVSB: receiving order for validating end of segment", this.bufferType, (0,utils/* getLoggableSegmentId */.K)(infos));
|
|
51797
51899
|
return this._addToQueue({
|
|
51798
51900
|
type: types/* SegmentBufferOperation.EndOfSegment */.f.EndOfSegment,
|
|
51799
51901
|
value: infos
|
|
51800
|
-
});
|
|
51902
|
+
}, cancellationSignal);
|
|
51801
51903
|
}
|
|
51802
51904
|
/**
|
|
51803
51905
|
* Returns the currently buffered data, in a TimeRanges object.
|
|
@@ -51854,12 +51956,10 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51854
51956
|
;
|
|
51855
51957
|
|
|
51856
51958
|
_proto.dispose = function dispose() {
|
|
51857
|
-
this.
|
|
51858
|
-
|
|
51859
|
-
this._destroy$.complete();
|
|
51959
|
+
this._canceller.cancel();
|
|
51860
51960
|
|
|
51861
51961
|
if (this._pendingTask !== null) {
|
|
51862
|
-
this._pendingTask.
|
|
51962
|
+
this._pendingTask.reject(new task_canceller/* CancellationError */.FU());
|
|
51863
51963
|
|
|
51864
51964
|
this._pendingTask = null;
|
|
51865
51965
|
}
|
|
@@ -51868,7 +51968,7 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51868
51968
|
var nextElement = this._queue.shift();
|
|
51869
51969
|
|
|
51870
51970
|
if (nextElement !== undefined) {
|
|
51871
|
-
nextElement.
|
|
51971
|
+
nextElement.reject(new task_canceller/* CancellationError */.FU());
|
|
51872
51972
|
}
|
|
51873
51973
|
}
|
|
51874
51974
|
|
|
@@ -51882,7 +51982,7 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51882
51982
|
}
|
|
51883
51983
|
/**
|
|
51884
51984
|
* Called when an error arised that made the current task fail.
|
|
51885
|
-
* @param {Event}
|
|
51985
|
+
* @param {Event} err
|
|
51886
51986
|
*/
|
|
51887
51987
|
;
|
|
51888
51988
|
|
|
@@ -51892,7 +51992,7 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51892
51992
|
if (this._pendingTask !== null) {
|
|
51893
51993
|
var error = err instanceof Error ? err : new Error("An unknown error occured when doing operations " + "on the SourceBuffer");
|
|
51894
51994
|
|
|
51895
|
-
this._pendingTask.
|
|
51995
|
+
this._pendingTask.reject(error);
|
|
51896
51996
|
}
|
|
51897
51997
|
}
|
|
51898
51998
|
/**
|
|
@@ -51903,40 +52003,46 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51903
52003
|
* Cancel queued operation on unsubscription.
|
|
51904
52004
|
* @private
|
|
51905
52005
|
* @param {Object} operation
|
|
51906
|
-
* @
|
|
52006
|
+
* @param {Object} cancellationSignal
|
|
52007
|
+
* @returns {Promise}
|
|
51907
52008
|
*/
|
|
51908
52009
|
;
|
|
51909
52010
|
|
|
51910
|
-
_proto._addToQueue = function _addToQueue(operation) {
|
|
52011
|
+
_proto._addToQueue = function _addToQueue(operation, cancellationSignal) {
|
|
51911
52012
|
var _this2 = this;
|
|
51912
52013
|
|
|
51913
|
-
return new
|
|
52014
|
+
return new Promise(function (resolve, reject) {
|
|
52015
|
+
if (cancellationSignal.cancellationError !== null) {
|
|
52016
|
+
return reject(cancellationSignal.cancellationError);
|
|
52017
|
+
}
|
|
52018
|
+
|
|
51914
52019
|
var shouldRestartQueue = _this2._queue.length === 0 && _this2._pendingTask === null;
|
|
51915
|
-
var subject = new Subject/* Subject */.x();
|
|
51916
52020
|
var queueItem = (0,object_assign/* default */.Z)({
|
|
51917
|
-
|
|
52021
|
+
resolve: resolve,
|
|
52022
|
+
reject: reject
|
|
51918
52023
|
}, operation);
|
|
51919
52024
|
|
|
51920
52025
|
_this2._queue.push(queueItem);
|
|
51921
52026
|
|
|
51922
|
-
|
|
51923
|
-
|
|
51924
|
-
if (shouldRestartQueue) {
|
|
51925
|
-
_this2._flush();
|
|
51926
|
-
}
|
|
51927
|
-
|
|
51928
|
-
return function () {
|
|
51929
|
-
subscription.unsubscribe(); // Remove the corresponding element from the AudioVideoSegmentBuffer's
|
|
52027
|
+
cancellationSignal.register(function (error) {
|
|
52028
|
+
// Remove the corresponding element from the AudioVideoSegmentBuffer's
|
|
51930
52029
|
// queue.
|
|
51931
52030
|
// If the operation was a pending task, it should still continue to not
|
|
51932
52031
|
// let the AudioVideoSegmentBuffer in a weird state.
|
|
51933
|
-
|
|
51934
52032
|
var index = _this2._queue.indexOf(queueItem);
|
|
51935
52033
|
|
|
51936
52034
|
if (index >= 0) {
|
|
51937
52035
|
_this2._queue.splice(index, 1);
|
|
51938
52036
|
}
|
|
51939
|
-
|
|
52037
|
+
|
|
52038
|
+
queueItem.resolve = noop/* default */.Z;
|
|
52039
|
+
queueItem.reject = noop/* default */.Z;
|
|
52040
|
+
reject(error);
|
|
52041
|
+
});
|
|
52042
|
+
|
|
52043
|
+
if (shouldRestartQueue) {
|
|
52044
|
+
_this2._flush();
|
|
52045
|
+
}
|
|
51940
52046
|
});
|
|
51941
52047
|
}
|
|
51942
52048
|
/**
|
|
@@ -51976,10 +52082,9 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
51976
52082
|
(0,assert_unreachable/* default */.Z)(task);
|
|
51977
52083
|
}
|
|
51978
52084
|
|
|
51979
|
-
var
|
|
52085
|
+
var resolve = task.resolve;
|
|
51980
52086
|
this._pendingTask = null;
|
|
51981
|
-
|
|
51982
|
-
subject.complete();
|
|
52087
|
+
resolve();
|
|
51983
52088
|
|
|
51984
52089
|
this._flush(); // Go to next item in queue
|
|
51985
52090
|
|
|
@@ -52008,7 +52113,7 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
52008
52113
|
var error = e instanceof Error ? e : new Error("An unknown error occured when preparing a push operation");
|
|
52009
52114
|
this._lastInitSegment = null; // initialize init segment as a security
|
|
52010
52115
|
|
|
52011
|
-
nextItem.
|
|
52116
|
+
nextItem.reject(error);
|
|
52012
52117
|
return;
|
|
52013
52118
|
}
|
|
52014
52119
|
|
|
@@ -52069,7 +52174,7 @@ var AudioVideoSegmentBuffer = /*#__PURE__*/function (_SegmentBuffer) {
|
|
|
52069
52174
|
*
|
|
52070
52175
|
* This method allows to "prepare" that push operation so that all is left is
|
|
52071
52176
|
* to push the returned segment data one after the other (from first to last).
|
|
52072
|
-
* @param {Object}
|
|
52177
|
+
* @param {Object} data
|
|
52073
52178
|
* @returns {Object}
|
|
52074
52179
|
*/
|
|
52075
52180
|
;
|
|
@@ -52230,7 +52335,6 @@ function assertPushedDataIsBufferSource(pushedData) {
|
|
|
52230
52335
|
|
|
52231
52336
|
|
|
52232
52337
|
|
|
52233
|
-
|
|
52234
52338
|
var POSSIBLE_BUFFER_TYPES = ["audio", "video", "text", "image"];
|
|
52235
52339
|
/**
|
|
52236
52340
|
* Allows to easily create and dispose SegmentBuffers, which are interfaces to
|
|
@@ -52248,7 +52352,7 @@ var POSSIBLE_BUFFER_TYPES = ["audio", "video", "text", "image"];
|
|
|
52248
52352
|
* To be able to use a SegmentBuffer linked to a native media buffer, you
|
|
52249
52353
|
* will first need to create it, but also wait until the other one is either
|
|
52250
52354
|
* created or explicitely disabled through the `disableSegmentBuffer` method.
|
|
52251
|
-
* The
|
|
52355
|
+
* The Promise returned by `waitForUsableBuffers` will emit when
|
|
52252
52356
|
* that is the case.
|
|
52253
52357
|
*
|
|
52254
52358
|
* @class SegmentBuffersStore
|
|
@@ -52352,7 +52456,7 @@ var SegmentBuffersStore = /*#__PURE__*/function () {
|
|
|
52352
52456
|
* content need to all be created (by creating SegmentBuffers linked to them)
|
|
52353
52457
|
* before any one can be used.
|
|
52354
52458
|
*
|
|
52355
|
-
* This function will return
|
|
52459
|
+
* This function will return a Promise resolving when any and all native
|
|
52356
52460
|
* SourceBuffers can be used.
|
|
52357
52461
|
*
|
|
52358
52462
|
* From https://w3c.github.io/media-source/#methods
|
|
@@ -52360,23 +52464,35 @@ var SegmentBuffersStore = /*#__PURE__*/function () {
|
|
|
52360
52464
|
* exception if the media element has reached the HAVE_METADATA
|
|
52361
52465
|
* readyState. This can occur if the user agent's media engine
|
|
52362
52466
|
* does not support adding more tracks during playback.
|
|
52363
|
-
* @
|
|
52467
|
+
* @param {Object} cancelWaitSignal
|
|
52468
|
+
* @return {Promise}
|
|
52364
52469
|
*/
|
|
52365
52470
|
;
|
|
52366
52471
|
|
|
52367
|
-
_proto.waitForUsableBuffers = function waitForUsableBuffers() {
|
|
52472
|
+
_proto.waitForUsableBuffers = function waitForUsableBuffers(cancelWaitSignal) {
|
|
52368
52473
|
var _this = this;
|
|
52369
52474
|
|
|
52370
52475
|
if (this._areNativeBuffersUsable()) {
|
|
52371
|
-
return
|
|
52476
|
+
return Promise.resolve();
|
|
52372
52477
|
}
|
|
52373
52478
|
|
|
52374
|
-
return new
|
|
52375
|
-
|
|
52479
|
+
return new Promise(function (res, rej) {
|
|
52480
|
+
var onAddedOrDisabled = function onAddedOrDisabled() {
|
|
52376
52481
|
if (_this._areNativeBuffersUsable()) {
|
|
52377
|
-
|
|
52378
|
-
obs.complete();
|
|
52482
|
+
res();
|
|
52379
52483
|
}
|
|
52484
|
+
};
|
|
52485
|
+
|
|
52486
|
+
_this._onNativeBufferAddedOrDisabled.push(onAddedOrDisabled);
|
|
52487
|
+
|
|
52488
|
+
cancelWaitSignal.register(function (error) {
|
|
52489
|
+
var indexOf = _this._onNativeBufferAddedOrDisabled.indexOf(onAddedOrDisabled);
|
|
52490
|
+
|
|
52491
|
+
if (indexOf >= 0) {
|
|
52492
|
+
_this._onNativeBufferAddedOrDisabled.splice(indexOf, 1);
|
|
52493
|
+
}
|
|
52494
|
+
|
|
52495
|
+
rej(error);
|
|
52380
52496
|
});
|
|
52381
52497
|
});
|
|
52382
52498
|
}
|
|
@@ -52625,6 +52741,76 @@ function exhaustMap(project, resultSelector) {
|
|
|
52625
52741
|
});
|
|
52626
52742
|
}
|
|
52627
52743
|
//# sourceMappingURL=exhaustMap.js.map
|
|
52744
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/tap.js
|
|
52745
|
+
var tap = __webpack_require__(2006);
|
|
52746
|
+
;// CONCATENATED MODULE: ./src/utils/rx-from_cancellable_promise.ts
|
|
52747
|
+
/**
|
|
52748
|
+
* Copyright 2015 CANAL+ Group
|
|
52749
|
+
*
|
|
52750
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
52751
|
+
* you may not use this file except in compliance with the License.
|
|
52752
|
+
* You may obtain a copy of the License at
|
|
52753
|
+
*
|
|
52754
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
52755
|
+
*
|
|
52756
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
52757
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
52758
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
52759
|
+
* See the License for the specific language governing permissions and
|
|
52760
|
+
* limitations under the License.
|
|
52761
|
+
*/
|
|
52762
|
+
|
|
52763
|
+
/**
|
|
52764
|
+
* Transform a Promise that can be cancelled (through the usage of a
|
|
52765
|
+
* `TaskCanceller`) to an Observable, while keeping the cancellation logic
|
|
52766
|
+
* between both in sync.
|
|
52767
|
+
*
|
|
52768
|
+
* @example
|
|
52769
|
+
* ```js
|
|
52770
|
+
* const canceller = new TaskCanceller();
|
|
52771
|
+
* fromCancellablePromise(
|
|
52772
|
+
* canceller,
|
|
52773
|
+
* () => doSomeCancellableTasks(canceller.signal)
|
|
52774
|
+
* ).subscribe(
|
|
52775
|
+
* (i) => console.log("Emitted: ", i);
|
|
52776
|
+
* (e) => console.log("Error: ", e);
|
|
52777
|
+
* () => console.log("Complete.")
|
|
52778
|
+
* );
|
|
52779
|
+
* ```
|
|
52780
|
+
* @param {Object} canceller
|
|
52781
|
+
* @param {Function} fn
|
|
52782
|
+
* @returns {Observable}
|
|
52783
|
+
*/
|
|
52784
|
+
|
|
52785
|
+
function fromCancellablePromise(canceller, fn) {
|
|
52786
|
+
return new Observable/* Observable */.y(function (obs) {
|
|
52787
|
+
var isUnsubscribedFrom = false;
|
|
52788
|
+
var isComplete = false;
|
|
52789
|
+
fn().then(function (i) {
|
|
52790
|
+
if (isUnsubscribedFrom) {
|
|
52791
|
+
return;
|
|
52792
|
+
}
|
|
52793
|
+
|
|
52794
|
+
isComplete = true;
|
|
52795
|
+
obs.next(i);
|
|
52796
|
+
obs.complete();
|
|
52797
|
+
}, function (err) {
|
|
52798
|
+
isComplete = true;
|
|
52799
|
+
|
|
52800
|
+
if (isUnsubscribedFrom) {
|
|
52801
|
+
return;
|
|
52802
|
+
}
|
|
52803
|
+
|
|
52804
|
+
obs.error(err);
|
|
52805
|
+
});
|
|
52806
|
+
return function () {
|
|
52807
|
+
if (!isComplete) {
|
|
52808
|
+
isUnsubscribedFrom = true;
|
|
52809
|
+
canceller.cancel();
|
|
52810
|
+
}
|
|
52811
|
+
};
|
|
52812
|
+
});
|
|
52813
|
+
}
|
|
52628
52814
|
// EXTERNAL MODULE: ./node_modules/next-tick/index.js
|
|
52629
52815
|
var next_tick = __webpack_require__(7473);
|
|
52630
52816
|
var next_tick_default = /*#__PURE__*/__webpack_require__.n(next_tick);
|
|
@@ -52982,9 +53168,10 @@ var WeakMapMemory = /*#__PURE__*/function () {
|
|
|
52982
53168
|
}();
|
|
52983
53169
|
|
|
52984
53170
|
|
|
52985
|
-
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js
|
|
52986
|
-
var concatAll = __webpack_require__(9834);
|
|
52987
53171
|
;// CONCATENATED MODULE: ./src/core/segment_buffers/garbage_collector.ts
|
|
53172
|
+
|
|
53173
|
+
|
|
53174
|
+
|
|
52988
53175
|
/**
|
|
52989
53176
|
* Copyright 2015 CANAL+ Group
|
|
52990
53177
|
*
|
|
@@ -53002,27 +53189,48 @@ var concatAll = __webpack_require__(9834);
|
|
|
53002
53189
|
*/
|
|
53003
53190
|
|
|
53004
53191
|
|
|
53005
|
-
|
|
53006
53192
|
/**
|
|
53007
53193
|
* Perform cleaning of the buffer according to the values set by the user
|
|
53008
|
-
* each time `
|
|
53194
|
+
* each time `playbackObserver` emits and each times the
|
|
53009
53195
|
* maxBufferBehind/maxBufferAhead values change.
|
|
53010
53196
|
*
|
|
53197
|
+
* Abort this operation when the `cancellationSignal` emits.
|
|
53198
|
+
*
|
|
53011
53199
|
* @param {Object} opt
|
|
53200
|
+
* @param {Object} cancellationSignal
|
|
53012
53201
|
* @returns {Observable}
|
|
53013
53202
|
*/
|
|
53014
53203
|
|
|
53015
|
-
function BufferGarbageCollector(_ref) {
|
|
53204
|
+
function BufferGarbageCollector(_ref, cancellationSignal) {
|
|
53016
53205
|
var segmentBuffer = _ref.segmentBuffer,
|
|
53017
|
-
|
|
53018
|
-
maxBufferBehind
|
|
53019
|
-
maxBufferAhead
|
|
53020
|
-
|
|
53021
|
-
|
|
53022
|
-
|
|
53023
|
-
|
|
53024
|
-
|
|
53025
|
-
|
|
53206
|
+
playbackObserver = _ref.playbackObserver,
|
|
53207
|
+
maxBufferBehind = _ref.maxBufferBehind,
|
|
53208
|
+
maxBufferAhead = _ref.maxBufferAhead;
|
|
53209
|
+
var lastPosition;
|
|
53210
|
+
playbackObserver.listen(function (o) {
|
|
53211
|
+
var _a;
|
|
53212
|
+
|
|
53213
|
+
lastPosition = (_a = o.position.pending) !== null && _a !== void 0 ? _a : o.position.last;
|
|
53214
|
+
clean();
|
|
53215
|
+
}, {
|
|
53216
|
+
includeLastObservation: true,
|
|
53217
|
+
clearSignal: cancellationSignal
|
|
53218
|
+
});
|
|
53219
|
+
|
|
53220
|
+
function clean() {
|
|
53221
|
+
clearBuffer(segmentBuffer, lastPosition, maxBufferBehind.getValue(), maxBufferAhead.getValue(), cancellationSignal)["catch"](function (e) {
|
|
53222
|
+
var errMsg = e instanceof Error ? e.message : "Unknown error";
|
|
53223
|
+
log/* default.error */.Z.error("Could not run BufferGarbageCollector:", errMsg);
|
|
53224
|
+
});
|
|
53225
|
+
}
|
|
53226
|
+
|
|
53227
|
+
maxBufferBehind.onUpdate(clean, {
|
|
53228
|
+
clearSignal: cancellationSignal
|
|
53229
|
+
});
|
|
53230
|
+
maxBufferAhead.onUpdate(clean, {
|
|
53231
|
+
clearSignal: cancellationSignal
|
|
53232
|
+
});
|
|
53233
|
+
clean();
|
|
53026
53234
|
}
|
|
53027
53235
|
/**
|
|
53028
53236
|
* Remove buffer from the browser's memory based on the user's
|
|
@@ -53038,96 +53246,133 @@ function BufferGarbageCollector(_ref) {
|
|
|
53038
53246
|
* @param {Number} position - The current position
|
|
53039
53247
|
* @param {Number} maxBufferBehind
|
|
53040
53248
|
* @param {Number} maxBufferAhead
|
|
53041
|
-
* @returns {
|
|
53249
|
+
* @returns {Promise}
|
|
53042
53250
|
*/
|
|
53043
53251
|
|
|
53044
|
-
function clearBuffer(
|
|
53045
|
-
|
|
53046
|
-
|
|
53047
|
-
}
|
|
53252
|
+
function clearBuffer(_x, _x2, _x3, _x4, _x5) {
|
|
53253
|
+
return _clearBuffer.apply(this, arguments);
|
|
53254
|
+
}
|
|
53048
53255
|
|
|
53049
|
-
|
|
53256
|
+
function _clearBuffer() {
|
|
53257
|
+
_clearBuffer = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(segmentBuffer, position, maxBufferBehind, maxBufferAhead, cancellationSignal) {
|
|
53258
|
+
var cleanedupRanges, _getInnerAndOuterTime, innerRange, outerRanges, collectBufferBehind, collectBufferAhead, _i, _cleanedupRanges, range;
|
|
53050
53259
|
|
|
53051
|
-
|
|
53052
|
-
|
|
53053
|
-
|
|
53260
|
+
return regenerator_default().wrap(function _callee$(_context) {
|
|
53261
|
+
while (1) {
|
|
53262
|
+
switch (_context.prev = _context.next) {
|
|
53263
|
+
case 0:
|
|
53264
|
+
if (!(!isFinite(maxBufferBehind) && !isFinite(maxBufferAhead))) {
|
|
53265
|
+
_context.next = 2;
|
|
53266
|
+
break;
|
|
53267
|
+
}
|
|
53054
53268
|
|
|
53055
|
-
|
|
53056
|
-
if (!isFinite(maxBufferBehind)) {
|
|
53057
|
-
return;
|
|
53058
|
-
} // begin from the oldest
|
|
53269
|
+
return _context.abrupt("return", Promise.resolve());
|
|
53059
53270
|
|
|
53271
|
+
case 2:
|
|
53272
|
+
cleanedupRanges = [];
|
|
53273
|
+
_getInnerAndOuterTime = (0,ranges/* getInnerAndOuterTimeRanges */.F_)(segmentBuffer.getBufferedRanges(), position), innerRange = _getInnerAndOuterTime.innerRange, outerRanges = _getInnerAndOuterTime.outerRanges;
|
|
53060
53274
|
|
|
53061
|
-
|
|
53062
|
-
|
|
53275
|
+
collectBufferBehind = function collectBufferBehind() {
|
|
53276
|
+
if (!isFinite(maxBufferBehind)) {
|
|
53277
|
+
return;
|
|
53278
|
+
} // begin from the oldest
|
|
53063
53279
|
|
|
53064
|
-
if (position - maxBufferBehind >= outerRange.end) {
|
|
53065
|
-
cleanedupRanges.push(outerRange);
|
|
53066
|
-
} else if (position >= outerRange.end && position - maxBufferBehind > outerRange.start && position - maxBufferBehind < outerRange.end) {
|
|
53067
|
-
cleanedupRanges.push({
|
|
53068
|
-
start: outerRange.start,
|
|
53069
|
-
end: position - maxBufferBehind
|
|
53070
|
-
});
|
|
53071
|
-
}
|
|
53072
|
-
}
|
|
53073
53280
|
|
|
53074
|
-
|
|
53075
|
-
|
|
53076
|
-
cleanedupRanges.push({
|
|
53077
|
-
start: innerRange.start,
|
|
53078
|
-
end: position - maxBufferBehind
|
|
53079
|
-
});
|
|
53080
|
-
}
|
|
53081
|
-
}
|
|
53082
|
-
};
|
|
53281
|
+
for (var i = 0; i < outerRanges.length; i++) {
|
|
53282
|
+
var outerRange = outerRanges[i];
|
|
53083
53283
|
|
|
53084
|
-
|
|
53085
|
-
|
|
53086
|
-
|
|
53087
|
-
|
|
53284
|
+
if (position - maxBufferBehind >= outerRange.end) {
|
|
53285
|
+
cleanedupRanges.push(outerRange);
|
|
53286
|
+
} else if (position >= outerRange.end && position - maxBufferBehind > outerRange.start && position - maxBufferBehind < outerRange.end) {
|
|
53287
|
+
cleanedupRanges.push({
|
|
53288
|
+
start: outerRange.start,
|
|
53289
|
+
end: position - maxBufferBehind
|
|
53290
|
+
});
|
|
53291
|
+
}
|
|
53292
|
+
}
|
|
53088
53293
|
|
|
53294
|
+
if (innerRange != null) {
|
|
53295
|
+
if (position - maxBufferBehind > innerRange.start) {
|
|
53296
|
+
cleanedupRanges.push({
|
|
53297
|
+
start: innerRange.start,
|
|
53298
|
+
end: position - maxBufferBehind
|
|
53299
|
+
});
|
|
53300
|
+
}
|
|
53301
|
+
}
|
|
53302
|
+
};
|
|
53089
53303
|
|
|
53090
|
-
|
|
53091
|
-
|
|
53304
|
+
collectBufferAhead = function collectBufferAhead() {
|
|
53305
|
+
if (!isFinite(maxBufferAhead)) {
|
|
53306
|
+
return;
|
|
53307
|
+
} // begin from the oldest
|
|
53092
53308
|
|
|
53093
|
-
if (position + maxBufferAhead <= outerRange.start) {
|
|
53094
|
-
cleanedupRanges.push(outerRange);
|
|
53095
|
-
} else if (position <= outerRange.start && position + maxBufferAhead < outerRange.end && position + maxBufferAhead > outerRange.start) {
|
|
53096
|
-
cleanedupRanges.push({
|
|
53097
|
-
start: position + maxBufferAhead,
|
|
53098
|
-
end: outerRange.end
|
|
53099
|
-
});
|
|
53100
|
-
}
|
|
53101
|
-
}
|
|
53102
53309
|
|
|
53103
|
-
|
|
53104
|
-
|
|
53105
|
-
cleanedupRanges.push({
|
|
53106
|
-
start: position + maxBufferAhead,
|
|
53107
|
-
end: innerRange.end
|
|
53108
|
-
});
|
|
53109
|
-
}
|
|
53110
|
-
}
|
|
53111
|
-
};
|
|
53310
|
+
for (var i = 0; i < outerRanges.length; i++) {
|
|
53311
|
+
var outerRange = outerRanges[i];
|
|
53112
53312
|
|
|
53113
|
-
|
|
53114
|
-
|
|
53115
|
-
|
|
53116
|
-
|
|
53313
|
+
if (position + maxBufferAhead <= outerRange.start) {
|
|
53314
|
+
cleanedupRanges.push(outerRange);
|
|
53315
|
+
} else if (position <= outerRange.start && position + maxBufferAhead < outerRange.end && position + maxBufferAhead > outerRange.start) {
|
|
53316
|
+
cleanedupRanges.push({
|
|
53317
|
+
start: position + maxBufferAhead,
|
|
53318
|
+
end: outerRange.end
|
|
53319
|
+
});
|
|
53320
|
+
}
|
|
53321
|
+
}
|
|
53117
53322
|
|
|
53118
|
-
|
|
53119
|
-
|
|
53120
|
-
|
|
53323
|
+
if (innerRange != null) {
|
|
53324
|
+
if (position + maxBufferAhead < innerRange.end) {
|
|
53325
|
+
cleanedupRanges.push({
|
|
53326
|
+
start: position + maxBufferAhead,
|
|
53327
|
+
end: innerRange.end
|
|
53328
|
+
});
|
|
53329
|
+
}
|
|
53330
|
+
}
|
|
53331
|
+
};
|
|
53121
53332
|
|
|
53122
|
-
|
|
53123
|
-
|
|
53124
|
-
|
|
53125
|
-
// leading to linter issues, as it forbids the usage of `any`.
|
|
53126
|
-
// This is why we're disabling the eslint rule.
|
|
53333
|
+
collectBufferBehind();
|
|
53334
|
+
collectBufferAhead();
|
|
53335
|
+
_i = 0, _cleanedupRanges = cleanedupRanges;
|
|
53127
53336
|
|
|
53128
|
-
|
|
53129
|
-
|
|
53130
|
-
|
|
53337
|
+
case 9:
|
|
53338
|
+
if (!(_i < _cleanedupRanges.length)) {
|
|
53339
|
+
_context.next = 20;
|
|
53340
|
+
break;
|
|
53341
|
+
}
|
|
53342
|
+
|
|
53343
|
+
range = _cleanedupRanges[_i];
|
|
53344
|
+
|
|
53345
|
+
if (!(range.start < range.end)) {
|
|
53346
|
+
_context.next = 17;
|
|
53347
|
+
break;
|
|
53348
|
+
}
|
|
53349
|
+
|
|
53350
|
+
log/* default.debug */.Z.debug("GC: cleaning range from SegmentBuffer", range.start, range.end);
|
|
53351
|
+
|
|
53352
|
+
if (!(cancellationSignal.cancellationError !== null)) {
|
|
53353
|
+
_context.next = 15;
|
|
53354
|
+
break;
|
|
53355
|
+
}
|
|
53356
|
+
|
|
53357
|
+
throw cancellationSignal.cancellationError;
|
|
53358
|
+
|
|
53359
|
+
case 15:
|
|
53360
|
+
_context.next = 17;
|
|
53361
|
+
return segmentBuffer.removeBuffer(range.start, range.end, cancellationSignal);
|
|
53362
|
+
|
|
53363
|
+
case 17:
|
|
53364
|
+
_i++;
|
|
53365
|
+
_context.next = 9;
|
|
53366
|
+
break;
|
|
53367
|
+
|
|
53368
|
+
case 20:
|
|
53369
|
+
case "end":
|
|
53370
|
+
return _context.stop();
|
|
53371
|
+
}
|
|
53372
|
+
}
|
|
53373
|
+
}, _callee);
|
|
53374
|
+
}));
|
|
53375
|
+
return _clearBuffer.apply(this, arguments);
|
|
53131
53376
|
}
|
|
53132
53377
|
// EXTERNAL MODULE: ./src/core/stream/events_generators.ts
|
|
53133
53378
|
var stream_events_generators = __webpack_require__(8567);
|
|
@@ -54430,7 +54675,8 @@ function getSegmentPriority(segmentTime, wantedStartTimestamp) {
|
|
|
54430
54675
|
function getBufferStatus(content, initialWantedTime, playbackObserver, fastSwitchThreshold, bufferGoal, maxBufferSize, segmentBuffer) {
|
|
54431
54676
|
segmentBuffer.synchronizeInventory();
|
|
54432
54677
|
var representation = content.representation;
|
|
54433
|
-
var
|
|
54678
|
+
var askedStart = playbackObserver.getIsPaused() || playbackObserver.getPlaybackRate() <= 0 ? initialWantedTime - 0.1 : initialWantedTime;
|
|
54679
|
+
var neededRange = getRangeOfNeededSegments(content, askedStart, bufferGoal);
|
|
54434
54680
|
var shouldRefreshManifest = representation.index.shouldRefresh(neededRange.start, neededRange.end);
|
|
54435
54681
|
/**
|
|
54436
54682
|
* Every segment awaiting an "EndOfSegment" operation, which indicates that a
|
|
@@ -54470,7 +54716,7 @@ function getBufferStatus(content, initialWantedTime, playbackObserver, fastSwitc
|
|
|
54470
54716
|
|
|
54471
54717
|
var prioritizedNeededSegments = segmentsToLoad.map(function (segment) {
|
|
54472
54718
|
return {
|
|
54473
|
-
priority: getSegmentPriority(segment.time,
|
|
54719
|
+
priority: getSegmentPriority(segment.time, askedStart),
|
|
54474
54720
|
segment: segment
|
|
54475
54721
|
};
|
|
54476
54722
|
});
|
|
@@ -54538,7 +54784,7 @@ function getRangeOfNeededSegments(content, initialWantedTime, bufferGoal) {
|
|
|
54538
54784
|
if (!(0,is_null_or_undefined/* default */.Z)(lastIndexPosition) && initialWantedTime >= lastIndexPosition && representationIndex.isInitialized() && representationIndex.isFinished() && isPeriodTheCurrentAndLastOne(manifest, period, initialWantedTime)) {
|
|
54539
54785
|
wantedStartPosition = lastIndexPosition - 1;
|
|
54540
54786
|
} else {
|
|
54541
|
-
wantedStartPosition = initialWantedTime;
|
|
54787
|
+
wantedStartPosition = initialWantedTime - 0.1;
|
|
54542
54788
|
}
|
|
54543
54789
|
|
|
54544
54790
|
var wantedEndPosition = wantedStartPosition + bufferGoal;
|
|
@@ -54620,6 +54866,15 @@ function getPlayableBufferedSegments(neededRange, segmentInventory) {
|
|
|
54620
54866
|
return overlappingChunks;
|
|
54621
54867
|
}
|
|
54622
54868
|
;// CONCATENATED MODULE: ./src/core/stream/representation/force_garbage_collection.ts
|
|
54869
|
+
|
|
54870
|
+
|
|
54871
|
+
|
|
54872
|
+
function force_garbage_collection_createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = force_garbage_collection_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
54873
|
+
|
|
54874
|
+
function force_garbage_collection_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return force_garbage_collection_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return force_garbage_collection_arrayLikeToArray(o, minLen); }
|
|
54875
|
+
|
|
54876
|
+
function force_garbage_collection_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
54877
|
+
|
|
54623
54878
|
/**
|
|
54624
54879
|
* Copyright 2015 CANAL+ Group
|
|
54625
54880
|
*
|
|
@@ -54638,44 +54893,20 @@ function getPlayableBufferedSegments(neededRange, segmentInventory) {
|
|
|
54638
54893
|
|
|
54639
54894
|
|
|
54640
54895
|
|
|
54641
|
-
|
|
54642
54896
|
/**
|
|
54643
54897
|
* Run the garbage collector.
|
|
54644
54898
|
*
|
|
54645
54899
|
* Try to clean up buffered ranges from a low gcGap at first.
|
|
54646
54900
|
* If it does not succeed to clean up space, use a higher gcCap.
|
|
54647
54901
|
*
|
|
54648
|
-
* @param {
|
|
54902
|
+
* @param {number} currentPosition
|
|
54649
54903
|
* @param {Object} bufferingQueue
|
|
54650
|
-
* @
|
|
54904
|
+
* @param {Object} cancellationSignal
|
|
54905
|
+
* @returns {Promise}
|
|
54651
54906
|
*/
|
|
54652
54907
|
|
|
54653
|
-
function forceGarbageCollection(
|
|
54654
|
-
return (
|
|
54655
|
-
var GC_GAP_CALM = config/* default.getCurrent */.Z.getCurrent().BUFFER_GC_GAPS.CALM;
|
|
54656
|
-
var GC_GAP_BEEFY = config/* default.getCurrent */.Z.getCurrent().BUFFER_GC_GAPS.BEEFY;
|
|
54657
|
-
log/* default.warn */.Z.warn("Stream: Running garbage collector");
|
|
54658
|
-
var buffered = bufferingQueue.getBufferedRanges();
|
|
54659
|
-
var cleanedupRanges = selectGCedRanges(currentPosition, buffered, GC_GAP_CALM); // more aggressive GC if we could not find any range to clean
|
|
54660
|
-
|
|
54661
|
-
if (cleanedupRanges.length === 0) {
|
|
54662
|
-
cleanedupRanges = selectGCedRanges(currentPosition, buffered, GC_GAP_BEEFY);
|
|
54663
|
-
}
|
|
54664
|
-
|
|
54665
|
-
if (log/* default.hasLevel */.Z.hasLevel("DEBUG")) {
|
|
54666
|
-
log/* default.debug */.Z.debug("Stream: GC cleaning", cleanedupRanges.map(function (_ref) {
|
|
54667
|
-
var start = _ref.start,
|
|
54668
|
-
end = _ref.end;
|
|
54669
|
-
return "start: " + start + " - end " + end;
|
|
54670
|
-
}).join(", "));
|
|
54671
|
-
}
|
|
54672
|
-
|
|
54673
|
-
return (0,from/* from */.D)(cleanedupRanges.map(function (_ref2) {
|
|
54674
|
-
var start = _ref2.start,
|
|
54675
|
-
end = _ref2.end;
|
|
54676
|
-
return start >= end ? (0,of.of)(null) : bufferingQueue.removeBuffer(start, end);
|
|
54677
|
-
})).pipe((0,concatAll/* concatAll */.u)());
|
|
54678
|
-
});
|
|
54908
|
+
function forceGarbageCollection(_x, _x2, _x3) {
|
|
54909
|
+
return _forceGarbageCollection.apply(this, arguments);
|
|
54679
54910
|
}
|
|
54680
54911
|
/**
|
|
54681
54912
|
* Buffer garbage collector algorithm.
|
|
@@ -54691,6 +54922,68 @@ function forceGarbageCollection(currentPosition, bufferingQueue) {
|
|
|
54691
54922
|
* @returns {Array.<Object>} - Ranges selected for clean up
|
|
54692
54923
|
*/
|
|
54693
54924
|
|
|
54925
|
+
function _forceGarbageCollection() {
|
|
54926
|
+
_forceGarbageCollection = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(currentPosition, bufferingQueue, cancellationSignal) {
|
|
54927
|
+
var GC_GAP_CALM, GC_GAP_BEEFY, buffered, cleanedupRanges, _iterator, _step, range, start, end;
|
|
54928
|
+
|
|
54929
|
+
return regenerator_default().wrap(function _callee$(_context) {
|
|
54930
|
+
while (1) {
|
|
54931
|
+
switch (_context.prev = _context.next) {
|
|
54932
|
+
case 0:
|
|
54933
|
+
GC_GAP_CALM = config/* default.getCurrent */.Z.getCurrent().BUFFER_GC_GAPS.CALM;
|
|
54934
|
+
GC_GAP_BEEFY = config/* default.getCurrent */.Z.getCurrent().BUFFER_GC_GAPS.BEEFY;
|
|
54935
|
+
log/* default.warn */.Z.warn("Stream: Running garbage collector");
|
|
54936
|
+
buffered = bufferingQueue.getBufferedRanges();
|
|
54937
|
+
cleanedupRanges = selectGCedRanges(currentPosition, buffered, GC_GAP_CALM); // more aggressive GC if we could not find any range to clean
|
|
54938
|
+
|
|
54939
|
+
if (cleanedupRanges.length === 0) {
|
|
54940
|
+
cleanedupRanges = selectGCedRanges(currentPosition, buffered, GC_GAP_BEEFY);
|
|
54941
|
+
}
|
|
54942
|
+
|
|
54943
|
+
if (log/* default.hasLevel */.Z.hasLevel("DEBUG")) {
|
|
54944
|
+
log/* default.debug */.Z.debug("Stream: GC cleaning", cleanedupRanges.map(function (_ref2) {
|
|
54945
|
+
var start = _ref2.start,
|
|
54946
|
+
end = _ref2.end;
|
|
54947
|
+
return "start: " + start + " - end " + end;
|
|
54948
|
+
}).join(", "));
|
|
54949
|
+
}
|
|
54950
|
+
|
|
54951
|
+
_iterator = force_garbage_collection_createForOfIteratorHelperLoose(cleanedupRanges);
|
|
54952
|
+
|
|
54953
|
+
case 8:
|
|
54954
|
+
if ((_step = _iterator()).done) {
|
|
54955
|
+
_context.next = 16;
|
|
54956
|
+
break;
|
|
54957
|
+
}
|
|
54958
|
+
|
|
54959
|
+
range = _step.value;
|
|
54960
|
+
start = range.start, end = range.end;
|
|
54961
|
+
|
|
54962
|
+
if (!(start < end)) {
|
|
54963
|
+
_context.next = 14;
|
|
54964
|
+
break;
|
|
54965
|
+
}
|
|
54966
|
+
|
|
54967
|
+
_context.next = 14;
|
|
54968
|
+
return bufferingQueue.removeBuffer(start, end, cancellationSignal);
|
|
54969
|
+
|
|
54970
|
+
case 14:
|
|
54971
|
+
_context.next = 8;
|
|
54972
|
+
break;
|
|
54973
|
+
|
|
54974
|
+
case 16:
|
|
54975
|
+
return _context.abrupt("return");
|
|
54976
|
+
|
|
54977
|
+
case 17:
|
|
54978
|
+
case "end":
|
|
54979
|
+
return _context.stop();
|
|
54980
|
+
}
|
|
54981
|
+
}
|
|
54982
|
+
}, _callee);
|
|
54983
|
+
}));
|
|
54984
|
+
return _forceGarbageCollection.apply(this, arguments);
|
|
54985
|
+
}
|
|
54986
|
+
|
|
54694
54987
|
function selectGCedRanges(position, buffered, gcGap) {
|
|
54695
54988
|
var _getInnerAndOuterTime = (0,ranges/* getInnerAndOuterTimeRanges */.F_)(buffered, position),
|
|
54696
54989
|
innerRange = _getInnerAndOuterTime.innerRange,
|
|
@@ -54712,9 +55005,9 @@ function selectGCedRanges(position, buffered, gcGap) {
|
|
|
54712
55005
|
|
|
54713
55006
|
if (innerRange !== null) {
|
|
54714
55007
|
if (log/* default.hasLevel */.Z.hasLevel("DEBUG")) {
|
|
54715
|
-
log/* default.debug */.Z.debug("Stream: GC removing part of inner range", cleanedupRanges.map(function (
|
|
54716
|
-
var start =
|
|
54717
|
-
end =
|
|
55008
|
+
log/* default.debug */.Z.debug("Stream: GC removing part of inner range", cleanedupRanges.map(function (_ref) {
|
|
55009
|
+
var start = _ref.start,
|
|
55010
|
+
end = _ref.end;
|
|
54718
55011
|
return "start: " + start + " - end " + end;
|
|
54719
55012
|
}).join(", "));
|
|
54720
55013
|
}
|
|
@@ -54737,6 +55030,9 @@ function selectGCedRanges(position, buffered, gcGap) {
|
|
|
54737
55030
|
return cleanedupRanges;
|
|
54738
55031
|
}
|
|
54739
55032
|
;// CONCATENATED MODULE: ./src/core/stream/representation/append_segment_to_buffer.ts
|
|
55033
|
+
|
|
55034
|
+
|
|
55035
|
+
|
|
54740
55036
|
/**
|
|
54741
55037
|
* Copyright 2015 CANAL+ Group
|
|
54742
55038
|
*
|
|
@@ -54758,36 +55054,78 @@ function selectGCedRanges(position, buffered, gcGap) {
|
|
|
54758
55054
|
*/
|
|
54759
55055
|
|
|
54760
55056
|
|
|
54761
|
-
|
|
54762
55057
|
/**
|
|
54763
55058
|
* Append a segment to the given segmentBuffer.
|
|
54764
55059
|
* If it leads to a QuotaExceededError, try to run our custom range
|
|
54765
55060
|
* _garbage collector_ then retry.
|
|
54766
|
-
*
|
|
54767
55061
|
* @param {Observable} playbackObserver
|
|
54768
55062
|
* @param {Object} segmentBuffer
|
|
54769
55063
|
* @param {Object} dataInfos
|
|
54770
|
-
* @
|
|
55064
|
+
* @param {Object} cancellationSignal
|
|
55065
|
+
* @returns {Promise}
|
|
54771
55066
|
*/
|
|
54772
55067
|
|
|
54773
|
-
function appendSegmentToBuffer(
|
|
54774
|
-
|
|
54775
|
-
|
|
54776
|
-
if (!(appendError instanceof Error) || appendError.name !== "QuotaExceededError") {
|
|
54777
|
-
var reason = appendError instanceof Error ? appendError.toString() : "An unknown error happened when pushing content";
|
|
54778
|
-
throw new media_error/* default */.Z("BUFFER_APPEND_ERROR", reason);
|
|
54779
|
-
}
|
|
55068
|
+
function appendSegmentToBuffer(_x, _x2, _x3, _x4) {
|
|
55069
|
+
return _appendSegmentToBuffer.apply(this, arguments);
|
|
55070
|
+
}
|
|
54780
55071
|
|
|
54781
|
-
|
|
54782
|
-
|
|
55072
|
+
function _appendSegmentToBuffer() {
|
|
55073
|
+
_appendSegmentToBuffer = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(playbackObserver, segmentBuffer, dataInfos, cancellationSignal) {
|
|
55074
|
+
var _a, reason, _playbackObserver$get, position, currentPos, _reason;
|
|
54783
55075
|
|
|
54784
|
-
|
|
54785
|
-
|
|
54786
|
-
|
|
54787
|
-
|
|
54788
|
-
|
|
54789
|
-
|
|
55076
|
+
return regenerator_default().wrap(function _callee$(_context) {
|
|
55077
|
+
while (1) {
|
|
55078
|
+
switch (_context.prev = _context.next) {
|
|
55079
|
+
case 0:
|
|
55080
|
+
_context.prev = 0;
|
|
55081
|
+
_context.next = 3;
|
|
55082
|
+
return segmentBuffer.pushChunk(dataInfos, cancellationSignal);
|
|
55083
|
+
|
|
55084
|
+
case 3:
|
|
55085
|
+
_context.next = 23;
|
|
55086
|
+
break;
|
|
55087
|
+
|
|
55088
|
+
case 5:
|
|
55089
|
+
_context.prev = 5;
|
|
55090
|
+
_context.t0 = _context["catch"](0);
|
|
55091
|
+
|
|
55092
|
+
if (!(!(_context.t0 instanceof Error) || _context.t0.name !== "QuotaExceededError")) {
|
|
55093
|
+
_context.next = 10;
|
|
55094
|
+
break;
|
|
55095
|
+
}
|
|
55096
|
+
|
|
55097
|
+
reason = _context.t0 instanceof Error ? _context.t0.toString() : "An unknown error happened when pushing content";
|
|
55098
|
+
throw new media_error/* default */.Z("BUFFER_APPEND_ERROR", reason);
|
|
55099
|
+
|
|
55100
|
+
case 10:
|
|
55101
|
+
_playbackObserver$get = playbackObserver.getReference().getValue(), position = _playbackObserver$get.position;
|
|
55102
|
+
currentPos = (_a = position.pending) !== null && _a !== void 0 ? _a : position.last;
|
|
55103
|
+
_context.prev = 12;
|
|
55104
|
+
_context.next = 15;
|
|
55105
|
+
return forceGarbageCollection(currentPos, segmentBuffer, cancellationSignal);
|
|
55106
|
+
|
|
55107
|
+
case 15:
|
|
55108
|
+
_context.next = 17;
|
|
55109
|
+
return segmentBuffer.pushChunk(dataInfos, cancellationSignal);
|
|
55110
|
+
|
|
55111
|
+
case 17:
|
|
55112
|
+
_context.next = 23;
|
|
55113
|
+
break;
|
|
55114
|
+
|
|
55115
|
+
case 19:
|
|
55116
|
+
_context.prev = 19;
|
|
55117
|
+
_context.t1 = _context["catch"](12);
|
|
55118
|
+
_reason = _context.t1 instanceof Error ? _context.t1.toString() : "Could not clean the buffer";
|
|
55119
|
+
throw new media_error/* default */.Z("BUFFER_FULL_ERROR", _reason);
|
|
55120
|
+
|
|
55121
|
+
case 23:
|
|
55122
|
+
case "end":
|
|
55123
|
+
return _context.stop();
|
|
55124
|
+
}
|
|
55125
|
+
}
|
|
55126
|
+
}, _callee, null, [[0, 5], [12, 19]]);
|
|
54790
55127
|
}));
|
|
55128
|
+
return _appendSegmentToBuffer.apply(this, arguments);
|
|
54791
55129
|
}
|
|
54792
55130
|
;// CONCATENATED MODULE: ./src/core/stream/representation/push_init_segment.ts
|
|
54793
55131
|
/**
|
|
@@ -54808,6 +55146,8 @@ function appendSegmentToBuffer(playbackObserver, segmentBuffer, dataInfos) {
|
|
|
54808
55146
|
|
|
54809
55147
|
|
|
54810
55148
|
|
|
55149
|
+
|
|
55150
|
+
|
|
54811
55151
|
/**
|
|
54812
55152
|
* Push the initialization segment to the SegmentBuffer.
|
|
54813
55153
|
* The Observable returned:
|
|
@@ -54836,9 +55176,12 @@ function pushInitSegment(_ref) {
|
|
|
54836
55176
|
appendWindow: [undefined, undefined],
|
|
54837
55177
|
codec: codec
|
|
54838
55178
|
};
|
|
54839
|
-
|
|
54840
|
-
|
|
54841
|
-
|
|
55179
|
+
var canceller = new task_canceller/* default */.ZP();
|
|
55180
|
+
return fromCancellablePromise(canceller, function () {
|
|
55181
|
+
return appendSegmentToBuffer(playbackObserver, segmentBuffer, {
|
|
55182
|
+
data: data,
|
|
55183
|
+
inventoryInfos: null
|
|
55184
|
+
}, canceller.signal);
|
|
54842
55185
|
}).pipe((0,map/* map */.U)(function () {
|
|
54843
55186
|
var buffered = segmentBuffer.getBufferedRanges();
|
|
54844
55187
|
return stream_events_generators/* default.addedSegment */.Z.addedSegment(content, segment, buffered, segmentData);
|
|
@@ -54866,6 +55209,8 @@ function pushInitSegment(_ref) {
|
|
|
54866
55209
|
|
|
54867
55210
|
|
|
54868
55211
|
|
|
55212
|
+
|
|
55213
|
+
|
|
54869
55214
|
/**
|
|
54870
55215
|
* Push a given media segment (non-init segment) to a SegmentBuffer.
|
|
54871
55216
|
* The Observable returned:
|
|
@@ -54928,9 +55273,12 @@ function pushMediaSegment(_ref) {
|
|
|
54928
55273
|
start: estimatedStart,
|
|
54929
55274
|
end: estimatedEnd
|
|
54930
55275
|
}, content);
|
|
54931
|
-
|
|
54932
|
-
|
|
54933
|
-
|
|
55276
|
+
var canceller = new task_canceller/* default */.ZP();
|
|
55277
|
+
return fromCancellablePromise(canceller, function () {
|
|
55278
|
+
return appendSegmentToBuffer(playbackObserver, segmentBuffer, {
|
|
55279
|
+
data: data,
|
|
55280
|
+
inventoryInfos: inventoryInfos
|
|
55281
|
+
}, canceller.signal);
|
|
54934
55282
|
}).pipe((0,map/* map */.U)(function () {
|
|
54935
55283
|
var buffered = segmentBuffer.getBufferedRanges();
|
|
54936
55284
|
return stream_events_generators/* default.addedSegment */.Z.addedSegment(content, segment, buffered, chunkData);
|
|
@@ -54975,6 +55323,8 @@ function pushMediaSegment(_ref) {
|
|
|
54975
55323
|
|
|
54976
55324
|
|
|
54977
55325
|
|
|
55326
|
+
|
|
55327
|
+
|
|
54978
55328
|
/**
|
|
54979
55329
|
* Build up buffer for a single Representation.
|
|
54980
55330
|
*
|
|
@@ -55149,8 +55499,11 @@ function RepresentationStream(_ref) {
|
|
|
55149
55499
|
var gcedPosition = Math.max(0, initialWantedTime - UPTO_CURRENT_POSITION_CLEANUP);
|
|
55150
55500
|
|
|
55151
55501
|
if (gcedPosition > 0) {
|
|
55152
|
-
|
|
55153
|
-
|
|
55502
|
+
var removalCanceller = new task_canceller/* default */.ZP();
|
|
55503
|
+
bufferRemoval = fromCancellablePromise(removalCanceller, function () {
|
|
55504
|
+
return segmentBuffer.removeBuffer(0, gcedPosition, removalCanceller.signal);
|
|
55505
|
+
} // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
55506
|
+
).pipe((0,ignoreElements/* ignoreElements */.l)());
|
|
55154
55507
|
}
|
|
55155
55508
|
}
|
|
55156
55509
|
|
|
@@ -55191,9 +55544,12 @@ function RepresentationStream(_ref) {
|
|
|
55191
55544
|
case "end-of-segment":
|
|
55192
55545
|
{
|
|
55193
55546
|
var segment = evt.value.segment;
|
|
55194
|
-
|
|
55195
|
-
|
|
55196
|
-
|
|
55547
|
+
var endOfSegmentCanceller = new task_canceller/* default */.ZP();
|
|
55548
|
+
return fromCancellablePromise(endOfSegmentCanceller, function () {
|
|
55549
|
+
return segmentBuffer.endOfSegment((0,object_assign/* default */.Z)({
|
|
55550
|
+
segment: segment
|
|
55551
|
+
}, content), endOfSegmentCanceller.signal);
|
|
55552
|
+
}) // NOTE As of now (RxJS 7.4.0), RxJS defines `ignoreElements` default
|
|
55197
55553
|
// first type parameter as `any` instead of the perfectly fine `unknown`,
|
|
55198
55554
|
// leading to linter issues, as it forbids the usage of `any`.
|
|
55199
55555
|
// This is why we're disabling the eslint rule.
|
|
@@ -56102,6 +56458,8 @@ function getFirstSegmentAfterPeriod(inventory, period) {
|
|
|
56102
56458
|
|
|
56103
56459
|
|
|
56104
56460
|
|
|
56461
|
+
|
|
56462
|
+
|
|
56105
56463
|
/**
|
|
56106
56464
|
* Create single PeriodStream Observable:
|
|
56107
56465
|
* - Lazily create (or reuse) a SegmentBuffer for the given type.
|
|
@@ -56154,13 +56512,16 @@ function PeriodStream(_ref) {
|
|
|
56154
56512
|
return reloadAfterSwitch(period, bufferType, playbackObserver, 0);
|
|
56155
56513
|
}
|
|
56156
56514
|
|
|
56157
|
-
|
|
56158
|
-
|
|
56159
|
-
|
|
56160
|
-
|
|
56161
|
-
|
|
56162
|
-
|
|
56163
|
-
|
|
56515
|
+
var canceller = new task_canceller/* default */.ZP();
|
|
56516
|
+
cleanBuffer$ = fromCancellablePromise(canceller, function () {
|
|
56517
|
+
if (period.end === undefined) {
|
|
56518
|
+
return segmentBufferStatus.value.removeBuffer(period.start, Infinity, canceller.signal);
|
|
56519
|
+
} else if (period.end <= period.start) {
|
|
56520
|
+
return Promise.resolve();
|
|
56521
|
+
} else {
|
|
56522
|
+
return segmentBufferStatus.value.removeBuffer(period.start, period.end, canceller.signal);
|
|
56523
|
+
}
|
|
56524
|
+
});
|
|
56164
56525
|
} else {
|
|
56165
56526
|
if (segmentBufferStatus.type === "uninitialized") {
|
|
56166
56527
|
segmentBuffersStore.disableSegmentBuffer(bufferType);
|
|
@@ -56198,11 +56559,17 @@ function PeriodStream(_ref) {
|
|
|
56198
56559
|
var cleanBuffer$ = strategy.type === "clean-buffer" || strategy.type === "flush-buffer" ? concat/* concat.apply */.z.apply(void 0, strategy.value.map(function (_ref2) {
|
|
56199
56560
|
var start = _ref2.start,
|
|
56200
56561
|
end = _ref2.end;
|
|
56201
|
-
|
|
56562
|
+
var canceller = new task_canceller/* default */.ZP();
|
|
56563
|
+
return fromCancellablePromise(canceller, function () {
|
|
56564
|
+
return segmentBuffer.removeBuffer(start, end, canceller.signal);
|
|
56565
|
+
});
|
|
56202
56566
|
})).pipe((0,ignoreElements/* ignoreElements */.l)()) : empty/* EMPTY */.E;
|
|
56203
56567
|
var bufferGarbageCollector$ = garbageCollectors.get(segmentBuffer);
|
|
56204
56568
|
var adaptationStream$ = createAdaptationStream(adaptation, segmentBuffer);
|
|
56205
|
-
|
|
56569
|
+
var cancelWait = new task_canceller/* default */.ZP();
|
|
56570
|
+
return fromCancellablePromise(cancelWait, function () {
|
|
56571
|
+
return segmentBuffersStore.waitForUsableBuffers(cancelWait.signal);
|
|
56572
|
+
}).pipe((0,mergeMap/* mergeMap */.z)(function () {
|
|
56206
56573
|
return (0,concat/* concat */.z)(cleanBuffer$, needsBufferFlush$, (0,merge/* merge */.T)(adaptationStream$, bufferGarbageCollector$));
|
|
56207
56574
|
}));
|
|
56208
56575
|
});
|
|
@@ -56656,6 +57023,9 @@ function getBlacklistedRanges(segmentBuffer, contents) {
|
|
|
56656
57023
|
|
|
56657
57024
|
|
|
56658
57025
|
|
|
57026
|
+
|
|
57027
|
+
|
|
57028
|
+
|
|
56659
57029
|
/**
|
|
56660
57030
|
* Create and manage the various Stream Observables needed for the content to
|
|
56661
57031
|
* play:
|
|
@@ -56700,19 +57070,21 @@ function StreamOrchestrator(content, playbackObserver, representationEstimator,
|
|
|
56700
57070
|
var bufferType = segmentBuffer.bufferType;
|
|
56701
57071
|
var defaultMaxBehind = MAXIMUM_MAX_BUFFER_BEHIND[bufferType] != null ? MAXIMUM_MAX_BUFFER_BEHIND[bufferType] : Infinity;
|
|
56702
57072
|
var defaultMaxAhead = MAXIMUM_MAX_BUFFER_AHEAD[bufferType] != null ? MAXIMUM_MAX_BUFFER_AHEAD[bufferType] : Infinity;
|
|
56703
|
-
return
|
|
56704
|
-
|
|
56705
|
-
|
|
56706
|
-
|
|
56707
|
-
|
|
56708
|
-
|
|
56709
|
-
|
|
56710
|
-
|
|
56711
|
-
|
|
56712
|
-
|
|
56713
|
-
|
|
56714
|
-
|
|
56715
|
-
|
|
57073
|
+
return new Observable/* Observable */.y(function () {
|
|
57074
|
+
var canceller = new task_canceller/* default */.ZP();
|
|
57075
|
+
BufferGarbageCollector({
|
|
57076
|
+
segmentBuffer: segmentBuffer,
|
|
57077
|
+
playbackObserver: playbackObserver,
|
|
57078
|
+
maxBufferBehind: (0,reference/* createMappedReference */.lR)(maxBufferBehind, function (val) {
|
|
57079
|
+
return Math.min(val, defaultMaxBehind);
|
|
57080
|
+
}, canceller.signal),
|
|
57081
|
+
maxBufferAhead: (0,reference/* createMappedReference */.lR)(maxBufferAhead, function (val) {
|
|
57082
|
+
return Math.min(val, defaultMaxAhead);
|
|
57083
|
+
}, canceller.signal)
|
|
57084
|
+
}, canceller.signal);
|
|
57085
|
+
return function () {
|
|
57086
|
+
canceller.cancel();
|
|
57087
|
+
};
|
|
56716
57088
|
});
|
|
56717
57089
|
}); // Every PeriodStreams for every possible types
|
|
56718
57090
|
|
|
@@ -56878,7 +57250,15 @@ function StreamOrchestrator(content, playbackObserver, representationEstimator,
|
|
|
56878
57250
|
return concat/* concat.apply */.z.apply(void 0, rangesToClean.map(function (_ref3) {
|
|
56879
57251
|
var start = _ref3.start,
|
|
56880
57252
|
end = _ref3.end;
|
|
56881
|
-
|
|
57253
|
+
|
|
57254
|
+
if (start >= end) {
|
|
57255
|
+
return empty/* EMPTY */.E;
|
|
57256
|
+
}
|
|
57257
|
+
|
|
57258
|
+
var canceller = new task_canceller/* default */.ZP();
|
|
57259
|
+
return fromCancellablePromise(canceller, function () {
|
|
57260
|
+
return segmentBuffer.removeBuffer(start, end, canceller.signal);
|
|
57261
|
+
}).pipe((0,ignoreElements/* ignoreElements */.l)());
|
|
56882
57262
|
}).concat([// Schedule micro task before checking the last playback observation
|
|
56883
57263
|
// to reduce the risk of race conditions where the next observation
|
|
56884
57264
|
// was going to be emitted synchronously.
|
|
@@ -57631,6 +58011,22 @@ function maintainEndOfStream(mediaSource) {
|
|
|
57631
58011
|
var initial_seek_and_play = __webpack_require__(7920);
|
|
57632
58012
|
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/timer.js
|
|
57633
58013
|
var timer = __webpack_require__(6625);
|
|
58014
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js
|
|
58015
|
+
var fromEvent = __webpack_require__(2401);
|
|
58016
|
+
// EXTERNAL MODULE: ./node_modules/rxjs/dist/esm5/internal/scheduler/async.js
|
|
58017
|
+
var scheduler_async = __webpack_require__(7991);
|
|
58018
|
+
;// CONCATENATED MODULE: ./node_modules/rxjs/dist/esm5/internal/observable/interval.js
|
|
58019
|
+
|
|
58020
|
+
|
|
58021
|
+
function interval(period, scheduler) {
|
|
58022
|
+
if (period === void 0) { period = 0; }
|
|
58023
|
+
if (scheduler === void 0) { scheduler = scheduler_async/* asyncScheduler */.z; }
|
|
58024
|
+
if (period < 0) {
|
|
58025
|
+
period = 0;
|
|
58026
|
+
}
|
|
58027
|
+
return (0,timer/* timer */.H)(period, period, scheduler);
|
|
58028
|
+
}
|
|
58029
|
+
//# sourceMappingURL=interval.js.map
|
|
57634
58030
|
;// CONCATENATED MODULE: ./src/core/init/media_duration_updater.ts
|
|
57635
58031
|
/**
|
|
57636
58032
|
* Copyright 2015 CANAL+ Group
|
|
@@ -57845,7 +58241,7 @@ function areSourceBuffersUpdating$(sourceBuffers) {
|
|
|
57845
58241
|
return true;
|
|
57846
58242
|
})), (0,fromEvent/* fromEvent */.R)(sourceBuffer, "update").pipe((0,map/* map */.U)(function () {
|
|
57847
58243
|
return false;
|
|
57848
|
-
})),
|
|
58244
|
+
})), interval(500).pipe((0,map/* map */.U)(function () {
|
|
57849
58245
|
return sourceBuffer.updating;
|
|
57850
58246
|
}))).pipe((0,startWith/* startWith */.O)(sourceBuffer.updating), (0,distinctUntilChanged/* distinctUntilChanged */.x)()));
|
|
57851
58247
|
};
|
|
@@ -58140,7 +58536,7 @@ function streamEventsEmitter(manifest, mediaElement, observation$) {
|
|
|
58140
58536
|
var _config$getCurrent = config/* default.getCurrent */.Z.getCurrent(),
|
|
58141
58537
|
STREAM_EVENT_EMITTER_POLL_INTERVAL = _config$getCurrent.STREAM_EVENT_EMITTER_POLL_INTERVAL;
|
|
58142
58538
|
|
|
58143
|
-
return combineLatest([
|
|
58539
|
+
return combineLatest([interval(STREAM_EVENT_EMITTER_POLL_INTERVAL).pipe((0,startWith/* startWith */.O)(null)), observation$]).pipe((0,map/* map */.U)(function (_ref) {
|
|
58144
58540
|
var _ = _ref[0],
|
|
58145
58541
|
observation = _ref[1];
|
|
58146
58542
|
var seeking = observation.seeking;
|
|
@@ -58340,7 +58736,7 @@ function createMediaSourceLoader(_ref) {
|
|
|
58340
58736
|
* events when it cannot, as well as "unstalled" events when it get out of one.
|
|
58341
58737
|
*/
|
|
58342
58738
|
|
|
58343
|
-
var stallAvoider$ = (0,stall_avoider/* default */.Z)(playbackObserver, manifest, lockedStream$, discontinuityUpdate$);
|
|
58739
|
+
var stallAvoider$ = (0,stall_avoider/* default */.Z)(playbackObserver, manifest, speed, lockedStream$, discontinuityUpdate$);
|
|
58344
58740
|
/**
|
|
58345
58741
|
* Emit a "loaded" events once the initial play has been performed and the
|
|
58346
58742
|
* media can begin playback.
|
|
@@ -59641,7 +60037,7 @@ var PlaybackObserver = /*#__PURE__*/function () {
|
|
|
59641
60037
|
* @param {Object} options
|
|
59642
60038
|
*/
|
|
59643
60039
|
function PlaybackObserver(mediaElement, options) {
|
|
59644
|
-
this.
|
|
60040
|
+
this._internalSeeksIncoming = [];
|
|
59645
60041
|
this._mediaElement = mediaElement;
|
|
59646
60042
|
this._withMediaSource = options.withMediaSource;
|
|
59647
60043
|
this._lowLatencyMode = options.lowLatencyMode;
|
|
@@ -59675,6 +60071,15 @@ var PlaybackObserver = /*#__PURE__*/function () {
|
|
|
59675
60071
|
_proto.getCurrentTime = function getCurrentTime() {
|
|
59676
60072
|
return this._mediaElement.currentTime;
|
|
59677
60073
|
}
|
|
60074
|
+
/**
|
|
60075
|
+
* Returns the current playback rate advertised by the `HTMLMediaElement`.
|
|
60076
|
+
* @returns {number}
|
|
60077
|
+
*/
|
|
60078
|
+
;
|
|
60079
|
+
|
|
60080
|
+
_proto.getPlaybackRate = function getPlaybackRate() {
|
|
60081
|
+
return this._mediaElement.playbackRate;
|
|
60082
|
+
}
|
|
59678
60083
|
/**
|
|
59679
60084
|
* Returns the current `paused` status advertised by the `HTMLMediaElement`.
|
|
59680
60085
|
*
|
|
@@ -59700,7 +60105,8 @@ var PlaybackObserver = /*#__PURE__*/function () {
|
|
|
59700
60105
|
;
|
|
59701
60106
|
|
|
59702
60107
|
_proto.setCurrentTime = function setCurrentTime(time) {
|
|
59703
|
-
this.
|
|
60108
|
+
this._internalSeeksIncoming.push(time);
|
|
60109
|
+
|
|
59704
60110
|
this._mediaElement.currentTime = time;
|
|
59705
60111
|
}
|
|
59706
60112
|
/**
|
|
@@ -59792,18 +60198,26 @@ var PlaybackObserver = /*#__PURE__*/function () {
|
|
|
59792
60198
|
|
|
59793
60199
|
var getCurrentObservation = function getCurrentObservation(event) {
|
|
59794
60200
|
var tmpEvt = event;
|
|
60201
|
+
var startedInternalSeekTime;
|
|
59795
60202
|
|
|
59796
|
-
if (tmpEvt === "seeking" && _this.
|
|
60203
|
+
if (tmpEvt === "seeking" && _this._internalSeeksIncoming.length > 0) {
|
|
59797
60204
|
tmpEvt = "internal-seeking";
|
|
59798
|
-
_this.
|
|
60205
|
+
startedInternalSeekTime = _this._internalSeeksIncoming.shift();
|
|
59799
60206
|
}
|
|
59800
60207
|
|
|
59801
60208
|
var _lastObservation = lastObservation !== null && lastObservation !== void 0 ? lastObservation : _this._generateInitialObservation();
|
|
59802
60209
|
|
|
59803
60210
|
var mediaTimings = getMediaInfos(_this._mediaElement, tmpEvt);
|
|
59804
|
-
var
|
|
59805
|
-
|
|
59806
|
-
|
|
60211
|
+
var pendingInternalSeek = null;
|
|
60212
|
+
|
|
60213
|
+
if (mediaTimings.seeking) {
|
|
60214
|
+
if (typeof startedInternalSeekTime === "number") {
|
|
60215
|
+
pendingInternalSeek = startedInternalSeekTime;
|
|
60216
|
+
} else if (_lastObservation.pendingInternalSeek !== null && event !== "seeking") {
|
|
60217
|
+
pendingInternalSeek = _lastObservation.pendingInternalSeek;
|
|
60218
|
+
}
|
|
60219
|
+
}
|
|
60220
|
+
|
|
59807
60221
|
var rebufferingStatus = getRebufferingStatus(_lastObservation, mediaTimings, {
|
|
59808
60222
|
lowLatencyMode: _this._lowLatencyMode,
|
|
59809
60223
|
withMediaSource: _this._withMediaSource
|
|
@@ -59812,11 +60226,11 @@ var PlaybackObserver = /*#__PURE__*/function () {
|
|
|
59812
60226
|
var timings = (0,object_assign/* default */.Z)({}, {
|
|
59813
60227
|
rebuffering: rebufferingStatus,
|
|
59814
60228
|
freezing: freezingStatus,
|
|
59815
|
-
|
|
60229
|
+
pendingInternalSeek: pendingInternalSeek
|
|
59816
60230
|
}, mediaTimings);
|
|
59817
60231
|
|
|
59818
60232
|
if (log/* default.hasLevel */.Z.hasLevel("DEBUG")) {
|
|
59819
|
-
log/* default.debug */.Z.debug("API: current media element state tick", "event", timings.event, "position", timings.position, "seeking", timings.seeking, "
|
|
60233
|
+
log/* default.debug */.Z.debug("API: current media element state tick", "event", timings.event, "position", timings.position, "seeking", timings.seeking, "internalSeek", timings.pendingInternalSeek, "rebuffering", timings.rebuffering !== null, "freezing", timings.freezing !== null, "ended", timings.ended, "paused", timings.paused, "playbackRate", timings.playbackRate, "readyState", timings.readyState);
|
|
59820
60234
|
}
|
|
59821
60235
|
|
|
59822
60236
|
return timings;
|
|
@@ -59874,7 +60288,7 @@ var PlaybackObserver = /*#__PURE__*/function () {
|
|
|
59874
60288
|
return (0,object_assign/* default */.Z)(getMediaInfos(this._mediaElement, "init"), {
|
|
59875
60289
|
rebuffering: null,
|
|
59876
60290
|
freezing: null,
|
|
59877
|
-
|
|
60291
|
+
pendingInternalSeek: null
|
|
59878
60292
|
});
|
|
59879
60293
|
};
|
|
59880
60294
|
|
|
@@ -60180,6 +60594,9 @@ function generateReadOnlyObserver(src, transform, cancellationSignal) {
|
|
|
60180
60594
|
getReadyState: function getReadyState() {
|
|
60181
60595
|
return src.getReadyState();
|
|
60182
60596
|
},
|
|
60597
|
+
getPlaybackRate: function getPlaybackRate() {
|
|
60598
|
+
return src.getPlaybackRate();
|
|
60599
|
+
},
|
|
60183
60600
|
getIsPaused: function getIsPaused() {
|
|
60184
60601
|
return src.getIsPaused();
|
|
60185
60602
|
},
|
|
@@ -61627,7 +62044,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
61627
62044
|
videoElement.preload = "auto";
|
|
61628
62045
|
_this.version =
|
|
61629
62046
|
/* PLAYER_VERSION */
|
|
61630
|
-
"3.
|
|
62047
|
+
"3.29.0-dev.2022090500";
|
|
61631
62048
|
_this.log = log/* default */.Z;
|
|
61632
62049
|
_this.state = "STOPPED";
|
|
61633
62050
|
_this.videoElement = videoElement;
|
|
@@ -61966,20 +62383,24 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
61966
62383
|
var transportPipelines = transportFn(transportOptions);
|
|
61967
62384
|
var offlineRetry = networkConfig.offlineRetry,
|
|
61968
62385
|
segmentRetry = networkConfig.segmentRetry,
|
|
61969
|
-
manifestRetry = networkConfig.manifestRetry
|
|
62386
|
+
manifestRetry = networkConfig.manifestRetry,
|
|
62387
|
+
manifestRequestTimeout = networkConfig.manifestRequestTimeout,
|
|
62388
|
+
segmentRequestTimeout = networkConfig.segmentRequestTimeout;
|
|
61970
62389
|
/** Interface used to load and refresh the Manifest. */
|
|
61971
62390
|
|
|
61972
62391
|
var manifestFetcher = new fetchers_manifest(url, transportPipelines, {
|
|
61973
62392
|
lowLatencyMode: lowLatencyMode,
|
|
61974
62393
|
maxRetryRegular: manifestRetry,
|
|
61975
|
-
maxRetryOffline: offlineRetry
|
|
62394
|
+
maxRetryOffline: offlineRetry,
|
|
62395
|
+
requestTimeout: manifestRequestTimeout
|
|
61976
62396
|
});
|
|
61977
62397
|
/** Interface used to download segments. */
|
|
61978
62398
|
|
|
61979
62399
|
var segmentFetcherCreator = new segment(transportPipelines, {
|
|
61980
62400
|
lowLatencyMode: lowLatencyMode,
|
|
61981
62401
|
maxRetryOffline: offlineRetry,
|
|
61982
|
-
maxRetryRegular: segmentRetry
|
|
62402
|
+
maxRetryRegular: segmentRetry,
|
|
62403
|
+
requestTimeout: segmentRequestTimeout
|
|
61983
62404
|
});
|
|
61984
62405
|
/** Observable emitting the initial Manifest */
|
|
61985
62406
|
|
|
@@ -62242,14 +62663,14 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
62242
62663
|
_this2.trigger(evt, null);
|
|
62243
62664
|
}); // Handle state updates
|
|
62244
62665
|
|
|
62245
|
-
playerState$.pipe((0,takeUntil/* takeUntil */.R)(stoppedContent$)).subscribe(function (
|
|
62246
|
-
|
|
62247
|
-
|
|
62248
|
-
|
|
62249
|
-
|
|
62250
|
-
|
|
62251
|
-
|
|
62252
|
-
|
|
62666
|
+
playerState$.pipe((0,takeUntil/* takeUntil */.R)(stoppedContent$)).subscribe(function (newState) {
|
|
62667
|
+
_this2._priv_setPlayerState(newState); // Previous call could have performed all kind of side-effects, thus,
|
|
62668
|
+
// we re-check the current state associated to the RxPlayer
|
|
62669
|
+
|
|
62670
|
+
|
|
62671
|
+
if (_this2.state === "ENDED" && _this2._priv_stopAtEnd) {
|
|
62672
|
+
currentContentCanceller.cancel();
|
|
62673
|
+
}
|
|
62253
62674
|
}); // Link playback events to the corresponding callbacks
|
|
62254
62675
|
|
|
62255
62676
|
playback$.subscribe({
|
|
@@ -64448,7 +64869,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
64448
64869
|
|
|
64449
64870
|
Player.version =
|
|
64450
64871
|
/* PLAYER_VERSION */
|
|
64451
|
-
"3.
|
|
64872
|
+
"3.29.0-dev.2022090500";
|
|
64452
64873
|
/* harmony default export */ var public_api = (Player);
|
|
64453
64874
|
;// CONCATENATED MODULE: ./src/core/api/index.ts
|
|
64454
64875
|
/**
|