@vkontakte/videoplayer-core 2.0.179 → 2.0.180
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/es2015.cjs +7 -7
- package/es2015.esm.js +17 -17
- package/esnext.cjs +7 -7
- package/esnext.esm.js +16 -16
- package/evergreen.esm.js +8 -8
- package/package.json +2 -2
- package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +1 -0
- package/types/providers/ProviderContainer/Mayday/heuristics/UnexpectedDashProviderVirtualStallHeuristic.d.ts +10 -0
- package/types/providers/ProviderContainer/Mayday/index.d.ts +1 -0
- package/types/providers/ProviderContainer/Mayday/types.d.ts +2 -1
- package/types/providers/ProviderContainer/index.d.ts +1 -0
- package/types/utils/tuningConfig.d.ts +3 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/videoplayer-core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.180",
|
|
4
4
|
"author": "vk.ru",
|
|
5
5
|
"description": "Videoplayer core library based on the vk.ru platform",
|
|
6
6
|
"homepage": "https://vk.ru",
|
|
@@ -42,6 +42,6 @@
|
|
|
42
42
|
"**/*.d.ts"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@vkontakte/videoplayer-shared": "1.0.
|
|
45
|
+
"@vkontakte/videoplayer-shared": "1.0.109"
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -120,6 +120,7 @@ export declare abstract class BasePlayer {
|
|
|
120
120
|
protected initTracerSubscription(): void;
|
|
121
121
|
protected tick(): Promise<void>;
|
|
122
122
|
private jumpToMaxBufferStartIfNeeded;
|
|
123
|
+
private jumpToNextNativeBufferRangeIfInGap;
|
|
123
124
|
private collectGapEndsContaining;
|
|
124
125
|
private jumpToFirstNativeBufferFrameIfNeeded;
|
|
125
126
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IError } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import type { ISyncHeuristic, HeuristicResult } from "./IHeuristic";
|
|
3
|
+
import type { IHeuristicDeps } from "../types";
|
|
4
|
+
export declare class UnexpectedDashProviderVirtualStallHeuristic implements ISyncHeuristic {
|
|
5
|
+
private deps;
|
|
6
|
+
static readonly heuristicName = "UnexpectedDashProviderVirtualStallHeuristic";
|
|
7
|
+
readonly type = "sync";
|
|
8
|
+
constructor(deps: IHeuristicDeps);
|
|
9
|
+
analyze(error: IError): HeuristicResult;
|
|
10
|
+
}
|
|
@@ -5,4 +5,5 @@ export { MediaErrorHeuristic } from "./heuristics/MediaErrorHeuristic";
|
|
|
5
5
|
export { FetcherErrorHeuristic } from "./heuristics/FetcherErrorHeuristic";
|
|
6
6
|
export { TvFetcherErrorHeuristic } from "./heuristics/TvFetcherErrorHeuristic";
|
|
7
7
|
export { StartupHangupHeuristic } from "./heuristics/StartupHangupHeuristic";
|
|
8
|
+
export { UnexpectedDashProviderVirtualStallHeuristic } from "./heuristics/UnexpectedDashProviderVirtualStallHeuristic";
|
|
8
9
|
export { MaydayStatistics } from "./MaydayStatistics";
|
|
@@ -5,6 +5,7 @@ import type { ITuningConfig } from "../../../utils/tuningConfig";
|
|
|
5
5
|
export interface IFallbackContext {
|
|
6
6
|
hasProviderStarted: boolean;
|
|
7
7
|
canSwitchCodec: boolean;
|
|
8
|
+
isDashProviderVirtual?: boolean;
|
|
8
9
|
}
|
|
9
10
|
export interface IReinitHistory {
|
|
10
11
|
reachedPlaying: boolean[];
|
|
@@ -61,7 +62,7 @@ export interface IHeuristicDeps {
|
|
|
61
62
|
manifestRequested$: IObservable<void>;
|
|
62
63
|
manifestReceived$: IObservable<void>;
|
|
63
64
|
}
|
|
64
|
-
export type RecoveryAction = "reinit" | "failover_host" | "switch_codec" | "switch_provider" | "wait";
|
|
65
|
+
export type RecoveryAction = "reinit" | "reinit_to_legacy_dash" | "failover_host" | "switch_codec" | "switch_provider" | "wait";
|
|
65
66
|
export interface IRecommendation {
|
|
66
67
|
action: RecoveryAction;
|
|
67
68
|
reason: string;
|
|
@@ -38,6 +38,7 @@ export default class ProviderContainer implements IProviderContainer {
|
|
|
38
38
|
private volumeMultiplierManager;
|
|
39
39
|
private dashMaxTvVideoQuality;
|
|
40
40
|
private segmentCacheCleared;
|
|
41
|
+
private skipDashProviderVirtualForThisSession;
|
|
41
42
|
private mayday;
|
|
42
43
|
private maydayStatistics;
|
|
43
44
|
constructor(params: IParams);
|
|
@@ -215,7 +215,10 @@ export type ITuningConfig = {
|
|
|
215
215
|
liveStallReinitInterval: Milliseconds;
|
|
216
216
|
ignoreNetworkErrorsOnLoadInit: boolean;
|
|
217
217
|
bufferTolerance: Milliseconds;
|
|
218
|
+
useBufferQueueSegmentEndSelection: boolean;
|
|
218
219
|
useBufferGapWatchdog: boolean;
|
|
220
|
+
useNativeBufferGapWatchdog: boolean;
|
|
221
|
+
useZeroAudioBufferLengthWhenAudioManagerExists: boolean;
|
|
219
222
|
jumpToFirstNativeBufferFrame: boolean;
|
|
220
223
|
minNativeBufferSize: Milliseconds;
|
|
221
224
|
removeTimeShiftFromSegment: Milliseconds;
|
|
@@ -280,13 +283,6 @@ export type ITuningConfig = {
|
|
|
280
283
|
* дешевле замершего воспроизведения.
|
|
281
284
|
*/
|
|
282
285
|
recoverStuckSegmentLoading: boolean;
|
|
283
|
-
/**
|
|
284
|
-
* UVP-11760: в `maintainNativeBuffer` не учитывать `switchMutex` при early-return, чтобы
|
|
285
|
-
* pre-buffered сегменты могли скармливаться в MSE пока `switchTo` висит на `loadInit`.
|
|
286
|
-
* При `false` (по умолчанию) — поведение до фикса: `switchMutex` блокирует `maintainNativeBuffer`.
|
|
287
|
-
* При `true` — эксперимент: `switchMutex` не блокирует `maintainNativeBuffer`.
|
|
288
|
-
*/
|
|
289
|
-
enableMaintainNativeBufferSwitchMutexBypass: boolean;
|
|
290
286
|
};
|
|
291
287
|
dashCmafLive: {
|
|
292
288
|
externalStopControl: boolean;
|
|
@@ -397,7 +393,6 @@ export type ITuningConfig = {
|
|
|
397
393
|
useDashLiveProviderVirtual: boolean;
|
|
398
394
|
useDashLiveProviderVirtualMobile: boolean;
|
|
399
395
|
useSafariEndlessRequestBugfix: boolean;
|
|
400
|
-
useAbortableGeneratorReturnOnAbort: boolean;
|
|
401
396
|
/**
|
|
402
397
|
* Ручка для фикса сброса playbackRate при перемотке live-трансляции на Safari.
|
|
403
398
|
*
|