@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.179",
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.108"
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
  *