rx-player 3.33.4-dev.2024080600 → 3.33.4-dev.2024081600
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 +10 -0
- package/VERSION +1 -1
- package/dist/_esm5.processed/core/api/public_api.js +2 -2
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +2 -2
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +3 -1
- package/dist/rx-player.js +80 -82
- package/dist/rx-player.min.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v3.33.4 (upcoming)
|
|
4
|
+
|
|
5
|
+
### Bug fixes
|
|
6
|
+
|
|
7
|
+
- Compat: Fix autoPlay on Tizen when the content starts on a discontinuity [#1500]
|
|
8
|
+
|
|
9
|
+
### Other improvements
|
|
10
|
+
|
|
11
|
+
- DASH: provide a more precize calculation for the timeshift buffer depth [#1492]
|
|
12
|
+
|
|
3
13
|
## v3.33.3
|
|
4
14
|
|
|
5
15
|
### Bug fixes
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.33.4-dev.
|
|
1
|
+
3.33.4-dev.2024081600
|
|
@@ -88,7 +88,7 @@ var Player = /** @class */ (function (_super) {
|
|
|
88
88
|
// Workaround to support Firefox autoplay on FF 42.
|
|
89
89
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
90
90
|
videoElement.preload = "auto";
|
|
91
|
-
_this.version = /* PLAYER_VERSION */ "3.33.4-dev.
|
|
91
|
+
_this.version = /* PLAYER_VERSION */ "3.33.4-dev.2024081600";
|
|
92
92
|
_this.log = log;
|
|
93
93
|
_this.state = "STOPPED";
|
|
94
94
|
_this.videoElement = videoElement;
|
|
@@ -2511,5 +2511,5 @@ var Player = /** @class */ (function (_super) {
|
|
|
2511
2511
|
Player._priv_currentlyUsedVideoElements = new WeakSet();
|
|
2512
2512
|
return Player;
|
|
2513
2513
|
}(EventEmitter));
|
|
2514
|
-
Player.version = /* PLAYER_VERSION */ "3.33.4-dev.
|
|
2514
|
+
Player.version = /* PLAYER_VERSION */ "3.33.4-dev.2024081600";
|
|
2515
2515
|
export default Player;
|
|
@@ -355,6 +355,8 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
355
355
|
}, { clearSignal: cancelSignal, emitCurrentValue: true });
|
|
356
356
|
var streamObserver = createStreamPlaybackObserver(playbackObserver, { autoPlay: autoPlay, manifest: manifest, initialPlayPerformed: initialPlayPerformed, initialSeekPerformed: initialSeekPerformed, speed: speed, startTime: initialTime }, cancelSignal);
|
|
357
357
|
var rebufferingController = this._createRebufferingController(playbackObserver, manifest, speed, cancelSignal);
|
|
358
|
+
var contentTimeBoundariesObserver = this
|
|
359
|
+
._createContentTimeBoundariesObserver(manifest, mediaSource, streamObserver, segmentBuffersStore, cancelSignal);
|
|
358
360
|
if (mayMediaElementFailOnUndecipherableData) {
|
|
359
361
|
// On some devices, just reload immediately when data become undecipherable
|
|
360
362
|
manifest.addEventListener("decipherabilityUpdate", function (elts) {
|
|
@@ -363,8 +365,6 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
|
|
|
363
365
|
}
|
|
364
366
|
}, cancelSignal);
|
|
365
367
|
}
|
|
366
|
-
var contentTimeBoundariesObserver = this
|
|
367
|
-
._createContentTimeBoundariesObserver(manifest, mediaSource, streamObserver, segmentBuffersStore, cancelSignal);
|
|
368
368
|
/**
|
|
369
369
|
* Emit a "loaded" events once the initial play has been performed and the
|
|
370
370
|
* media can begin playback.
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import { shouldValidateMetadata } from "../../../compat";
|
|
17
17
|
import { READY_STATES } from "../../../compat/browser_compatibility_types";
|
|
18
18
|
import { isSafariMobile } from "../../../compat/browser_detection";
|
|
19
|
+
import isSeekingApproximate from "../../../compat/is_seeking_approximate";
|
|
19
20
|
/* eslint-disable-next-line max-len */
|
|
20
21
|
import shouldPreventSeekingAt0Initially from "../../../compat/should_prevent_seeking_at_0_initially";
|
|
21
22
|
import { MediaError } from "../../../errors";
|
|
@@ -110,7 +111,8 @@ export default function performInitialSeekAndPlay(mediaElement, playbackObserver
|
|
|
110
111
|
}
|
|
111
112
|
if (!isAwaitingSeek &&
|
|
112
113
|
!observation.seeking &&
|
|
113
|
-
observation.
|
|
114
|
+
((isSeekingApproximate && observation.readyState >= 3) ||
|
|
115
|
+
observation.rebuffering === null) &&
|
|
114
116
|
observation.readyState >= 1) {
|
|
115
117
|
stopListening();
|
|
116
118
|
onPlayable();
|
package/dist/rx-player.js
CHANGED
|
@@ -726,6 +726,43 @@ var isNode = typeof window === "undefined";
|
|
|
726
726
|
|
|
727
727
|
/***/ }),
|
|
728
728
|
|
|
729
|
+
/***/ 7913:
|
|
730
|
+
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
731
|
+
|
|
732
|
+
"use strict";
|
|
733
|
+
/* harmony import */ var _browser_detection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(443);
|
|
734
|
+
/**
|
|
735
|
+
* Copyright 2015 CANAL+ Group
|
|
736
|
+
*
|
|
737
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
738
|
+
* you may not use this file except in compliance with the License.
|
|
739
|
+
* You may obtain a copy of the License at
|
|
740
|
+
*
|
|
741
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
742
|
+
*
|
|
743
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
744
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
745
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
746
|
+
* See the License for the specific language governing permissions and
|
|
747
|
+
* limitations under the License.
|
|
748
|
+
*/
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* On some devices (right now only seen on Tizen), seeking through the
|
|
752
|
+
* `currentTime` property can lead to the browser re-seeking once the
|
|
753
|
+
* segments have been loaded to improve seeking performances (for
|
|
754
|
+
* example, by seeking right to an intra video frame).
|
|
755
|
+
*
|
|
756
|
+
* This can lead to conflicts with the RxPlayer code.
|
|
757
|
+
*
|
|
758
|
+
* This boolean is only `true` on the devices where this behavior has been
|
|
759
|
+
* observed.
|
|
760
|
+
*/
|
|
761
|
+
var isSeekingApproximate = _browser_detection__WEBPACK_IMPORTED_MODULE_0__/* .isTizen */ .ZN;
|
|
762
|
+
/* harmony default export */ __webpack_exports__.A = (isSeekingApproximate);
|
|
763
|
+
|
|
764
|
+
/***/ }),
|
|
765
|
+
|
|
729
766
|
/***/ 7402:
|
|
730
767
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
731
768
|
|
|
@@ -9609,7 +9646,7 @@ var currentMediaState = new WeakMap();
|
|
|
9609
9646
|
/* harmony import */ var _utils_get_loaded_reference__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(5097);
|
|
9610
9647
|
/* harmony import */ var _utils_initial_seek_and_play__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(107);
|
|
9611
9648
|
/* harmony import */ var _utils_initialize_content_decryption__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6899);
|
|
9612
|
-
/* harmony import */ var _utils_rebuffering_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
9649
|
+
/* harmony import */ var _utils_rebuffering_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3137);
|
|
9613
9650
|
/* harmony import */ var _utils_throw_on_media_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8345);
|
|
9614
9651
|
|
|
9615
9652
|
/**
|
|
@@ -20132,8 +20169,8 @@ function getMaximumLiveSeekablePosition(contentLastPosition) {
|
|
|
20132
20169
|
// authorize exceptionally going over it.
|
|
20133
20170
|
return Math.max(Math.pow(2, 32), contentLastPosition + YEAR_IN_SECONDS);
|
|
20134
20171
|
}
|
|
20135
|
-
// EXTERNAL MODULE: ./src/core/init/utils/rebuffering_controller.ts
|
|
20136
|
-
var rebuffering_controller = __webpack_require__(
|
|
20172
|
+
// EXTERNAL MODULE: ./src/core/init/utils/rebuffering_controller.ts
|
|
20173
|
+
var rebuffering_controller = __webpack_require__(3137);
|
|
20137
20174
|
;// CONCATENATED MODULE: ./src/core/init/utils/stream_events_emitter/are_same_stream_events.ts
|
|
20138
20175
|
/**
|
|
20139
20176
|
* Copyright 2015 CANAL+ Group
|
|
@@ -20846,6 +20883,7 @@ var MediaSourceContentInitializer = /*#__PURE__*/function (_ContentInitializer)
|
|
|
20846
20883
|
startTime: initialTime
|
|
20847
20884
|
}, cancelSignal);
|
|
20848
20885
|
var rebufferingController = this._createRebufferingController(playbackObserver, manifest, speed, cancelSignal);
|
|
20886
|
+
var contentTimeBoundariesObserver = this._createContentTimeBoundariesObserver(manifest, mediaSource, streamObserver, segmentBuffersStore, cancelSignal);
|
|
20849
20887
|
if (may_media_element_fail_on_undecipherable_data) {
|
|
20850
20888
|
// On some devices, just reload immediately when data become undecipherable
|
|
20851
20889
|
manifest.addEventListener("decipherabilityUpdate", function (elts) {
|
|
@@ -20856,7 +20894,6 @@ var MediaSourceContentInitializer = /*#__PURE__*/function (_ContentInitializer)
|
|
|
20856
20894
|
}
|
|
20857
20895
|
}, cancelSignal);
|
|
20858
20896
|
}
|
|
20859
|
-
var contentTimeBoundariesObserver = this._createContentTimeBoundariesObserver(manifest, mediaSource, streamObserver, segmentBuffersStore, cancelSignal);
|
|
20860
20897
|
/**
|
|
20861
20898
|
* Emit a "loaded" events once the initial play has been performed and the
|
|
20862
20899
|
* media can begin playback.
|
|
@@ -21371,6 +21408,8 @@ var should_validate_metadata = __webpack_require__(2097);
|
|
|
21371
21408
|
var browser_compatibility_types = __webpack_require__(9770);
|
|
21372
21409
|
// EXTERNAL MODULE: ./src/compat/browser_detection.ts
|
|
21373
21410
|
var browser_detection = __webpack_require__(443);
|
|
21411
|
+
// EXTERNAL MODULE: ./src/compat/is_seeking_approximate.ts
|
|
21412
|
+
var is_seeking_approximate = __webpack_require__(7913);
|
|
21374
21413
|
;// CONCATENATED MODULE: ./src/compat/should_prevent_seeking_at_0_initially.ts
|
|
21375
21414
|
|
|
21376
21415
|
/**
|
|
@@ -21414,6 +21453,7 @@ var reference = __webpack_require__(8315);
|
|
|
21414
21453
|
|
|
21415
21454
|
|
|
21416
21455
|
|
|
21456
|
+
|
|
21417
21457
|
/* eslint-disable-next-line max-len */
|
|
21418
21458
|
|
|
21419
21459
|
|
|
@@ -21503,7 +21543,7 @@ function performInitialSeekAndPlay(mediaElement, playbackObserver, startTime, mu
|
|
|
21503
21543
|
isAwaitingSeek = false;
|
|
21504
21544
|
return;
|
|
21505
21545
|
}
|
|
21506
|
-
if (!isAwaitingSeek && !observation.seeking && observation.rebuffering === null && observation.readyState >= 1) {
|
|
21546
|
+
if (!isAwaitingSeek && !observation.seeking && (is_seeking_approximate/* default */.A && observation.readyState >= 3 || observation.rebuffering === null) && observation.readyState >= 1) {
|
|
21507
21547
|
stopListening();
|
|
21508
21548
|
onPlayable();
|
|
21509
21549
|
}
|
|
@@ -21720,63 +21760,21 @@ function initializeContentDecryption(mediaElement, keySystems, protectionRef, ca
|
|
|
21720
21760
|
|
|
21721
21761
|
/***/ }),
|
|
21722
21762
|
|
|
21723
|
-
/***/
|
|
21763
|
+
/***/ 3137:
|
|
21724
21764
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
21725
21765
|
|
|
21726
21766
|
"use strict";
|
|
21727
|
-
|
|
21728
|
-
|
|
21729
|
-
|
|
21730
|
-
|
|
21731
|
-
|
|
21732
|
-
|
|
21733
|
-
|
|
21734
|
-
var
|
|
21735
|
-
|
|
21736
|
-
var
|
|
21737
|
-
|
|
21738
|
-
/**
|
|
21739
|
-
* Copyright 2015 CANAL+ Group
|
|
21740
|
-
*
|
|
21741
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
21742
|
-
* you may not use this file except in compliance with the License.
|
|
21743
|
-
* You may obtain a copy of the License at
|
|
21744
|
-
*
|
|
21745
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
21746
|
-
*
|
|
21747
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
21748
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
21749
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21750
|
-
* See the License for the specific language governing permissions and
|
|
21751
|
-
* limitations under the License.
|
|
21752
|
-
*/
|
|
21753
|
-
|
|
21754
|
-
/**
|
|
21755
|
-
* On some devices (right now only seen on Tizen), seeking through the
|
|
21756
|
-
* `currentTime` property can lead to the browser re-seeking once the
|
|
21757
|
-
* segments have been loaded to improve seeking performances (for
|
|
21758
|
-
* example, by seeking right to an intra video frame).
|
|
21759
|
-
*
|
|
21760
|
-
* This can lead to conflicts with the RxPlayer code.
|
|
21761
|
-
*
|
|
21762
|
-
* This boolean is only `true` on the devices where this behavior has been
|
|
21763
|
-
* observed.
|
|
21764
|
-
*/
|
|
21765
|
-
var isSeekingApproximate = browser_detection/* isTizen */.ZN;
|
|
21766
|
-
/* harmony default export */ var is_seeking_approximate = (isSeekingApproximate);
|
|
21767
|
-
// EXTERNAL MODULE: ./src/config.ts + 2 modules
|
|
21768
|
-
var config = __webpack_require__(5151);
|
|
21769
|
-
// EXTERNAL MODULE: ./src/errors/media_error.ts
|
|
21770
|
-
var media_error = __webpack_require__(5575);
|
|
21771
|
-
// EXTERNAL MODULE: ./src/log.ts + 1 modules
|
|
21772
|
-
var log = __webpack_require__(9477);
|
|
21773
|
-
// EXTERNAL MODULE: ./src/utils/event_emitter.ts
|
|
21774
|
-
var event_emitter = __webpack_require__(79);
|
|
21775
|
-
// EXTERNAL MODULE: ./src/utils/ranges.ts
|
|
21776
|
-
var ranges = __webpack_require__(3650);
|
|
21777
|
-
// EXTERNAL MODULE: ./src/utils/task_canceller.ts
|
|
21778
|
-
var task_canceller = __webpack_require__(2507);
|
|
21779
|
-
;// CONCATENATED MODULE: ./src/core/init/utils/rebuffering_controller.ts
|
|
21767
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
21768
|
+
/* harmony export */ A: function() { return /* binding */ RebufferingController; }
|
|
21769
|
+
/* harmony export */ });
|
|
21770
|
+
/* harmony import */ var _babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7387);
|
|
21771
|
+
/* harmony import */ var _compat_is_seeking_approximate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7913);
|
|
21772
|
+
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5151);
|
|
21773
|
+
/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5575);
|
|
21774
|
+
/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9477);
|
|
21775
|
+
/* harmony import */ var _utils_event_emitter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(79);
|
|
21776
|
+
/* harmony import */ var _utils_ranges__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3650);
|
|
21777
|
+
/* harmony import */ var _utils_task_canceller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2507);
|
|
21780
21778
|
|
|
21781
21779
|
/**
|
|
21782
21780
|
* Copyright 2015 CANAL+ Group
|
|
@@ -21827,10 +21825,10 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
21827
21825
|
_this._speed = speed;
|
|
21828
21826
|
_this._discontinuitiesStore = [];
|
|
21829
21827
|
_this._isStarted = false;
|
|
21830
|
-
_this._canceller = new
|
|
21828
|
+
_this._canceller = new _utils_task_canceller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Ay();
|
|
21831
21829
|
return _this;
|
|
21832
21830
|
}
|
|
21833
|
-
(0,
|
|
21831
|
+
(0,_babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(RebufferingController, _EventEmitter);
|
|
21834
21832
|
var _proto = RebufferingController.prototype;
|
|
21835
21833
|
_proto.start = function start() {
|
|
21836
21834
|
var _this2 = this;
|
|
@@ -21876,14 +21874,14 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
21876
21874
|
readyState = observation.readyState,
|
|
21877
21875
|
rebuffering = observation.rebuffering,
|
|
21878
21876
|
freezing = observation.freezing;
|
|
21879
|
-
var _config$getCurrent =
|
|
21877
|
+
var _config$getCurrent = _config__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.getCurrent(),
|
|
21880
21878
|
BUFFER_DISCONTINUITY_THRESHOLD = _config$getCurrent.BUFFER_DISCONTINUITY_THRESHOLD,
|
|
21881
21879
|
FORCE_DISCONTINUITY_SEEK_DELAY = _config$getCurrent.FORCE_DISCONTINUITY_SEEK_DELAY,
|
|
21882
21880
|
FREEZING_STALLED_DELAY = _config$getCurrent.FREEZING_STALLED_DELAY,
|
|
21883
21881
|
UNFREEZING_SEEK_DELAY = _config$getCurrent.UNFREEZING_SEEK_DELAY,
|
|
21884
21882
|
UNFREEZING_DELTA_POSITION = _config$getCurrent.UNFREEZING_DELTA_POSITION;
|
|
21885
|
-
if (!observation.seeking &&
|
|
21886
|
-
|
|
21883
|
+
if (!observation.seeking && _compat_is_seeking_approximate__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A && ignoredStallTimeStamp === null && lastSeekingPosition !== null && observation.position < lastSeekingPosition) {
|
|
21884
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.debug("Init: the device appeared to have seeked back by itself.");
|
|
21887
21885
|
var now = performance.now();
|
|
21888
21886
|
ignoredStallTimeStamp = now;
|
|
21889
21887
|
}
|
|
@@ -21892,7 +21890,7 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
21892
21890
|
var _now = performance.now();
|
|
21893
21891
|
var referenceTimestamp = prevFreezingState === null ? freezing.timestamp : prevFreezingState.attemptTimestamp;
|
|
21894
21892
|
if (_now - referenceTimestamp > UNFREEZING_SEEK_DELAY) {
|
|
21895
|
-
|
|
21893
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.warn("Init: trying to seek to un-freeze player");
|
|
21896
21894
|
_this2._playbackObserver.setCurrentTime(_this2._playbackObserver.getCurrentTime() + UNFREEZING_DELTA_POSITION);
|
|
21897
21895
|
prevFreezingState = {
|
|
21898
21896
|
attemptTimestamp: _now
|
|
@@ -21934,11 +21932,11 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
21934
21932
|
var _now2 = performance.now();
|
|
21935
21933
|
if (_now2 - ignoredStallTimeStamp < FORCE_DISCONTINUITY_SEEK_DELAY) {
|
|
21936
21934
|
playbackRateUpdater.stopRebuffering();
|
|
21937
|
-
|
|
21935
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.debug("Init: letting the device get out of a stall by itself");
|
|
21938
21936
|
_this2.trigger("stalled", stalledReason);
|
|
21939
21937
|
return;
|
|
21940
21938
|
} else {
|
|
21941
|
-
|
|
21939
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.warn("Init: ignored stall for too long, checking discontinuity", _now2 - ignoredStallTimeStamp);
|
|
21942
21940
|
}
|
|
21943
21941
|
}
|
|
21944
21942
|
ignoredStallTimeStamp = null;
|
|
@@ -21954,9 +21952,9 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
21954
21952
|
if (skippableDiscontinuity !== null) {
|
|
21955
21953
|
var realSeekTime = skippableDiscontinuity + 0.001;
|
|
21956
21954
|
if (realSeekTime <= _this2._playbackObserver.getCurrentTime()) {
|
|
21957
|
-
|
|
21955
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.info("Init: position to seek already reached, no seeking", _this2._playbackObserver.getCurrentTime(), realSeekTime);
|
|
21958
21956
|
} else {
|
|
21959
|
-
|
|
21957
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.warn("SA: skippable discontinuity found in the stream", position, realSeekTime);
|
|
21960
21958
|
_this2._playbackObserver.setCurrentTime(realSeekTime);
|
|
21961
21959
|
_this2.trigger("warning", generateDiscontinuityError(stalledPosition, realSeekTime));
|
|
21962
21960
|
return;
|
|
@@ -21971,11 +21969,11 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
21971
21969
|
// calculate a stalled state. This is useful for some
|
|
21972
21970
|
// implementation that might drop an injected segment, or in
|
|
21973
21971
|
// case of small discontinuity in the content.
|
|
21974
|
-
var nextBufferRangeGap = (0,
|
|
21972
|
+
var nextBufferRangeGap = (0,_utils_ranges__WEBPACK_IMPORTED_MODULE_5__/* .getNextRangeGap */ .Td)(buffered, freezePosition);
|
|
21975
21973
|
if (_this2._speed.getValue() > 0 && nextBufferRangeGap < BUFFER_DISCONTINUITY_THRESHOLD) {
|
|
21976
21974
|
var seekTo = freezePosition + nextBufferRangeGap + EPSILON;
|
|
21977
21975
|
if (_this2._playbackObserver.getCurrentTime() < seekTo) {
|
|
21978
|
-
|
|
21976
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.warn("Init: discontinuity encountered inferior to the threshold", freezePosition, seekTo, BUFFER_DISCONTINUITY_THRESHOLD);
|
|
21979
21977
|
_this2._playbackObserver.setCurrentTime(seekTo);
|
|
21980
21978
|
_this2.trigger("warning", generateDiscontinuityError(freezePosition, seekTo));
|
|
21981
21979
|
return;
|
|
@@ -22035,7 +22033,7 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
22035
22033
|
var rebufferingPos = (_a = observation.rebuffering.position) !== null && _a !== void 0 ? _a : currPos;
|
|
22036
22034
|
var lockedPeriodStart = period.start;
|
|
22037
22035
|
if (currPos < lockedPeriodStart && Math.abs(rebufferingPos - lockedPeriodStart) < 1) {
|
|
22038
|
-
|
|
22036
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.warn("Init: rebuffering because of a future locked stream.\n" + "Trying to unlock by seeking to the next Period");
|
|
22039
22037
|
this._playbackObserver.setCurrentTime(lockedPeriodStart + 0.001);
|
|
22040
22038
|
}
|
|
22041
22039
|
}
|
|
@@ -22047,7 +22045,7 @@ var RebufferingController = /*#__PURE__*/function (_EventEmitter) {
|
|
|
22047
22045
|
this._canceller.cancel();
|
|
22048
22046
|
};
|
|
22049
22047
|
return RebufferingController;
|
|
22050
|
-
}(
|
|
22048
|
+
}(_utils_event_emitter__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A);
|
|
22051
22049
|
/**
|
|
22052
22050
|
* @param {Array.<Object>} discontinuitiesStore
|
|
22053
22051
|
* @param {Object} manifest
|
|
@@ -22079,14 +22077,14 @@ function findSeekableDiscontinuity(discontinuitiesStore, manifest, stalledPositi
|
|
|
22079
22077
|
if (nextPeriod !== null) {
|
|
22080
22078
|
discontinuityEnd = nextPeriod.start + EPSILON;
|
|
22081
22079
|
} else {
|
|
22082
|
-
|
|
22080
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.warn("Init: discontinuity at Period's end but no next Period");
|
|
22083
22081
|
}
|
|
22084
22082
|
} else if (stalledPosition < end + EPSILON) {
|
|
22085
22083
|
discontinuityEnd = end + EPSILON;
|
|
22086
22084
|
}
|
|
22087
22085
|
}
|
|
22088
22086
|
if (discontinuityEnd !== undefined) {
|
|
22089
|
-
|
|
22087
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.info("Init: discontinuity found", stalledPosition, discontinuityEnd);
|
|
22090
22088
|
maxDiscontinuityEnd = maxDiscontinuityEnd !== null && maxDiscontinuityEnd > discontinuityEnd ? maxDiscontinuityEnd : discontinuityEnd;
|
|
22091
22089
|
}
|
|
22092
22090
|
}
|
|
@@ -22155,7 +22153,7 @@ function updateDiscontinuitiesStore(discontinuitiesStore, evt, observation) {
|
|
|
22155
22153
|
* @returns {Error}
|
|
22156
22154
|
*/
|
|
22157
22155
|
function generateDiscontinuityError(stalledPosition, seekTo) {
|
|
22158
|
-
return new
|
|
22156
|
+
return new _errors__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A("DISCONTINUITY_ENCOUNTERED", "A discontinuity has been encountered at position " + String(stalledPosition) + ", seeked at position " + String(seekTo));
|
|
22159
22157
|
}
|
|
22160
22158
|
/**
|
|
22161
22159
|
* Manage playback speed, allowing to force a playback rate of `0` when
|
|
@@ -22174,7 +22172,7 @@ var PlaybackRateUpdater = /*#__PURE__*/function () {
|
|
|
22174
22172
|
* @param {Object} speed
|
|
22175
22173
|
*/
|
|
22176
22174
|
function PlaybackRateUpdater(playbackObserver, speed) {
|
|
22177
|
-
this._speedUpdateCanceller = new
|
|
22175
|
+
this._speedUpdateCanceller = new _utils_task_canceller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Ay();
|
|
22178
22176
|
this._isRebuffering = false;
|
|
22179
22177
|
this._playbackObserver = playbackObserver;
|
|
22180
22178
|
this._isDisposed = false;
|
|
@@ -22193,7 +22191,7 @@ var PlaybackRateUpdater = /*#__PURE__*/function () {
|
|
|
22193
22191
|
}
|
|
22194
22192
|
this._isRebuffering = true;
|
|
22195
22193
|
this._speedUpdateCanceller.cancel();
|
|
22196
|
-
|
|
22194
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.info("Init: Pause playback to build buffer");
|
|
22197
22195
|
this._playbackObserver.setPlaybackRate(0);
|
|
22198
22196
|
}
|
|
22199
22197
|
/**
|
|
@@ -22207,7 +22205,7 @@ var PlaybackRateUpdater = /*#__PURE__*/function () {
|
|
|
22207
22205
|
return;
|
|
22208
22206
|
}
|
|
22209
22207
|
this._isRebuffering = false;
|
|
22210
|
-
this._speedUpdateCanceller = new
|
|
22208
|
+
this._speedUpdateCanceller = new _utils_task_canceller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Ay();
|
|
22211
22209
|
this._updateSpeed();
|
|
22212
22210
|
}
|
|
22213
22211
|
/**
|
|
@@ -22224,7 +22222,7 @@ var PlaybackRateUpdater = /*#__PURE__*/function () {
|
|
|
22224
22222
|
_proto2._updateSpeed = function _updateSpeed() {
|
|
22225
22223
|
var _this3 = this;
|
|
22226
22224
|
this._speed.onUpdate(function (lastSpeed) {
|
|
22227
|
-
|
|
22225
|
+
_log__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A.info("Init: Resume playback speed", lastSpeed);
|
|
22228
22226
|
_this3._playbackObserver.setPlaybackRate(lastSpeed);
|
|
22229
22227
|
}, {
|
|
22230
22228
|
clearSignal: this._speedUpdateCanceller.signal,
|
|
@@ -53677,7 +53675,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
53677
53675
|
// Workaround to support Firefox autoplay on FF 42.
|
|
53678
53676
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
53679
53677
|
videoElement.preload = "auto";
|
|
53680
|
-
_this.version = /* PLAYER_VERSION */"3.33.4-dev.
|
|
53678
|
+
_this.version = /* PLAYER_VERSION */"3.33.4-dev.2024081600";
|
|
53681
53679
|
_this.log = src_log/* default */.A;
|
|
53682
53680
|
_this.state = "STOPPED";
|
|
53683
53681
|
_this.videoElement = videoElement;
|
|
@@ -56165,7 +56163,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
56165
56163
|
* Use of a WeakSet ensure the object is garbage collected if it's not used anymore.
|
|
56166
56164
|
*/
|
|
56167
56165
|
Player._priv_currentlyUsedVideoElements = new WeakSet();
|
|
56168
|
-
Player.version = /* PLAYER_VERSION */"3.33.4-dev.
|
|
56166
|
+
Player.version = /* PLAYER_VERSION */"3.33.4-dev.2024081600";
|
|
56169
56167
|
/* harmony default export */ var public_api = (Player);
|
|
56170
56168
|
;// CONCATENATED MODULE: ./src/core/api/index.ts
|
|
56171
56169
|
/**
|