@vkontakte/videoplayer-core 2.0.140-dev.24feb19e.0 → 2.0.140-dev.48b25e6e.0

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.140-dev.24feb19e.0",
3
+ "version": "2.0.140-dev.48b25e6e.0",
4
4
  "author": "vk.com",
5
5
  "description": "Videoplayer core library based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -54,6 +54,6 @@
54
54
  "**/*.d.ts"
55
55
  ],
56
56
  "dependencies": {
57
- "@vkontakte/videoplayer-shared": "1.0.68-dev.36f8bc3f.0"
57
+ "@vkontakte/videoplayer-shared": "1.0.68-dev.dedf71f0.0"
58
58
  }
59
59
  }
@@ -12,6 +12,15 @@ export interface Dependencies {
12
12
  }
13
13
  export interface Gap extends IRange<Milliseconds> {
14
14
  representation: Representation['id'];
15
+ /**
16
+ * дырки, которые не нужно удалять при парсинге буфера (те `detectGapsWhenIdle`).
17
+ * те, например, которые были обнаружены при парсинге сегментов из манифеста.
18
+ *
19
+ * в функции `detectGapsWhenIdle` мы сравниваем ранее найденные дырки с данными буфера,
20
+ * проблема в том, что не смотря на то, что буфер может показать, что как будто дырки нет,
21
+ * по факту, найденная в манифесте дырка, скорее всего, никуда не делась и это приведет к зависанию видео.
22
+ */
23
+ persistent: boolean;
15
24
  }
16
25
  export declare class BufferManager {
17
26
  currentLiveSegmentServerLatency$: IValueSubject<number>;
@@ -39,6 +48,7 @@ export declare class BufferManager {
39
48
  private downloadAbortController;
40
49
  private switchAbortController;
41
50
  private destroyAbortController;
51
+ private useSmartRepresentationSwitch;
42
52
  private readonly getCurrentPosition;
43
53
  private readonly isActiveLowLatency;
44
54
  private tuning;
@@ -76,6 +86,7 @@ export declare class BufferManager {
76
86
  updateLive(manifest: Manifest | null): void;
77
87
  proceedLowLatencyLive(): void;
78
88
  calculateDurationFromSegments(): number;
89
+ setSmartRepresentationSwitch(state: boolean): void;
79
90
  private updateLowLatencyLiveIfNeeded;
80
91
  findSegmentStartTime(position: Milliseconds): Milliseconds | undefined;
81
92
  setTarget(time: Milliseconds): void;
@@ -78,6 +78,7 @@ export declare class Player {
78
78
  constructor(params: Params);
79
79
  initManifest: (param_0: HTMLVideoElement, param_1: string, param_2: number) => Promise<void | undefined>;
80
80
  updateManifest: () => Promise<Manifest | null | undefined>;
81
+ setSmartRepresentationSwitch(state: boolean): void;
81
82
  seekLive(nextOffset: Milliseconds): Promise<void>;
82
83
  initRepresentations: (param_0: string, param_1: string | undefined, param_2: import("../../../player/types").URLSource | undefined) => Promise<void | undefined>;
83
84
  initBuffer(): void;
@@ -48,6 +48,7 @@ export declare class BufferManager {
48
48
  private downloadAbortController;
49
49
  private switchAbortController;
50
50
  private destroyAbortController;
51
+ private useSmartRepresentationSwitch;
51
52
  private readonly getCurrentPosition;
52
53
  private readonly isActiveLowLatency;
53
54
  private tuning;
@@ -85,6 +86,7 @@ export declare class BufferManager {
85
86
  seekLive: (param_0: Stream[] | undefined) => Promise<void | undefined>;
86
87
  updateLive(manifest: Manifest | null): void;
87
88
  proceedLowLatencyLive(): void;
89
+ setSmartRepresentationSwitch(state: boolean): void;
88
90
  private updateLowLatencyLiveIfNeeded;
89
91
  findSegmentStartTime(position: Milliseconds): Milliseconds | undefined;
90
92
  setTarget(time: Milliseconds): void;
@@ -78,6 +78,7 @@ export declare class Player {
78
78
  constructor(params: Params);
79
79
  initManifest: (param_0: HTMLVideoElement, param_1: string, param_2: number) => Promise<void | undefined>;
80
80
  updateManifest: () => Promise<Manifest | null | undefined>;
81
+ setSmartRepresentationSwitch(state: boolean): void;
81
82
  seekLive(nextOffset: Milliseconds): Promise<void>;
82
83
  initRepresentations: (param_0: string, param_1: string | undefined, param_2: import("../../../player/types").URLSource | undefined) => Promise<void | undefined>;
83
84
  initBuffer(): void;
@@ -1,7 +1,6 @@
1
1
  import { IVideoTrack, PredefinedQualityLimits } from '../player/types';
2
2
  import { ExactVideoQuality, Nullable, QualityLimits } from '@vkontakte/videoplayer-shared';
3
3
  export declare function getQualityLimitsPredefinedType(limits: QualityLimits, highQualityLimit: ExactVideoQuality, trafficSavingLimit: ExactVideoQuality): PredefinedQualityLimits;
4
- export declare function isHighQualityEnabled(limits: Nullable<QualityLimits>, highQualityLimit: ExactVideoQuality, trafficSavingLimit: ExactVideoQuality): boolean;
5
4
  type LimitsAsHeightValidParams = {
6
5
  limits?: {
7
6
  min?: number;
@@ -99,6 +99,9 @@ export type ITuningConfig = {
99
99
  crashOnStallTWithoutDataTimeout: Milliseconds;
100
100
  enableSubSegmentBufferFeeding: boolean;
101
101
  bufferEmptinessTolerance: Milliseconds;
102
+ useNewRepresentationSwitch: boolean;
103
+ useDelayedRepresentationSwitch: boolean;
104
+ useSmartRepresentationSwitch: boolean;
102
105
  useFetchPriorityHints: boolean;
103
106
  enableBaseUrlSupport: boolean;
104
107
  maxSegmentRetryCount: number;
@@ -107,7 +110,8 @@ export type ITuningConfig = {
107
110
  timeupdateEventTickThrottle: number;
108
111
  fetcherBufferOptimisation: boolean;
109
112
  codecsPrioritizeEnabled: boolean;
110
- useVideoElementWaitingCurrentTimeReassign: boolean;
113
+ usePersistentGaps: boolean;
114
+ abrThrottle: number;
111
115
  };
112
116
  dashCmafLive: {
113
117
  maxActiveLiveOffset: Milliseconds;
@@ -187,7 +191,6 @@ export type ITuningConfig = {
187
191
  useNewDashProvider: boolean;
188
192
  useNewAutoSelectVideoTrack: boolean;
189
193
  useSafariEndlessRequestBugfix: boolean;
190
- useRefactoredSearchGap: boolean;
191
194
  isAudioDisabled: boolean;
192
195
  autoplayOnlyInActiveTab: boolean;
193
196
  dynamicImportTimeout: Milliseconds;