@vkontakte/videoplayer-core 2.0.156-dev.fa4486263.0 → 2.0.156

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.
Files changed (54) hide show
  1. package/es2015.cjs +109 -19
  2. package/es2015.esm.js +110 -20
  3. package/es2018.cjs +109 -19
  4. package/es2018.esm.js +109 -19
  5. package/es2024.cjs +109 -19
  6. package/es2024.esm.js +110 -20
  7. package/esnext.cjs +109 -19
  8. package/esnext.esm.js +110 -20
  9. package/evergreen.esm.js +103 -13
  10. package/package.json +2 -2
  11. package/types/player/Player.d.ts +3 -2
  12. package/types/player/types.d.ts +6 -2
  13. package/types/providers/ChromecastPresentationApiProvider/types.d.ts +1 -1
  14. package/types/providers/ChromecastProvider/types.d.ts +1 -1
  15. package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +1 -0
  16. package/types/providers/DashProvider/baseDashProvider.d.ts +4 -1
  17. package/types/providers/DashProvider/lib/buffer.d.ts +3 -1
  18. package/types/providers/DashProvider/lib/player.d.ts +2 -1
  19. package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +11 -8
  20. package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +5 -3
  21. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.d.ts +11 -4
  22. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.d.ts +1 -1
  23. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager.d.ts +1 -1
  24. package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +1 -1
  25. package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +3 -2
  26. package/types/providers/HlsLiveProvider/index.d.ts +1 -0
  27. package/types/providers/HlsProvider/index.d.ts +1 -0
  28. package/types/providers/MpegProvider/index.d.ts +1 -0
  29. package/types/providers/ProviderContainer/index.d.ts +2 -0
  30. package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +5 -2
  31. package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +1 -0
  32. package/types/providers/types.d.ts +2 -0
  33. package/types/providers/utils/Abr/abrController.d.ts +15 -0
  34. package/types/providers/utils/Abr/abrManager.d.ts +18 -0
  35. package/types/providers/utils/Abr/controllers/stallsController.d.ts +33 -0
  36. package/types/providers/utils/Abr/rules/audio/audioThroughputRule.d.ts +12 -0
  37. package/types/providers/utils/Abr/rules/audio/minAudioForVideoRule.d.ts +11 -0
  38. package/types/providers/utils/Abr/rules/baseRule.d.ts +19 -0
  39. package/types/providers/utils/Abr/rules/limitAboveRule.d.ts +11 -0
  40. package/types/providers/utils/Abr/rules/limitBelowRule.d.ts +11 -0
  41. package/types/providers/utils/Abr/rules/video/bufferRule.d.ts +11 -0
  42. package/types/providers/utils/Abr/rules/video/fitsContainerRule.d.ts +14 -0
  43. package/types/providers/utils/Abr/rules/video/lowerLimitRule.d.ts +12 -0
  44. package/types/providers/utils/Abr/rules/video/stallsRule.d.ts +18 -0
  45. package/types/providers/utils/Abr/rules/video/throughputRule.d.ts +12 -0
  46. package/types/providers/utils/Abr/rules/video/upperLimitRule.d.ts +12 -0
  47. package/types/providers/utils/Abr/trackHistory.d.ts +9 -0
  48. package/types/providers/utils/Abr/types.d.ts +105 -0
  49. package/types/providers/utils/Abr/utils.d.ts +13 -0
  50. package/types/providers/{DashProvider/lib → utils/HTMLVideoElement}/ElementSizeManager.d.ts +1 -1
  51. package/types/providers/utils/HTMLVideoElement/pool.d.ts +4 -3
  52. package/types/providers/utils/syncDesiredState.d.ts +4 -2
  53. package/types/utils/tuningConfig.d.ts +24 -2
  54. package/types/providers/DashProviderVirtual/lib/ElementSizeManager.d.ts +0 -20
@@ -0,0 +1,12 @@
1
+ import type { IAbrRule, IAbrRuleResolution, IVideoAbrContext, RuleConfidence } from "../../types";
2
+ import type { IVideoTrack } from "../../../../../player/types";
3
+ import type { QualityLimits } from "@vkontakte/videoplayer-shared";
4
+ import { type ExactVideoQuality } from "@vkontakte/videoplayer-shared";
5
+ import { LimitBelowRule } from "../limitBelowRule";
6
+ type LowerLimitLogsArgs = [limitsAreInvalid: boolean, lowestAvailableQuality: ExactVideoQuality | undefined, highestAvailableQuality: ExactVideoQuality | undefined, limits: QualityLimits];
7
+ export declare class LowerLimitRule extends LimitBelowRule<IVideoTrack, IVideoAbrContext, LowerLimitLogsArgs> implements IAbrRule<IVideoTrack, IVideoAbrContext> {
8
+ constructor(confidence: RuleConfidence);
9
+ execute(context: IVideoAbrContext): IAbrRuleResolution<IVideoTrack>;
10
+ protected createLogMessage(selectedTrack: IVideoTrack, limitsAreInvalid: boolean, lowestAvailableQuality: ExactVideoQuality | undefined, highestAvailableQuality: ExactVideoQuality | undefined, limits: QualityLimits): string;
11
+ }
12
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { IAbrRule, IAbrRuleResolution, IVideoAbrContext, RuleConfidence } from "../../types";
2
+ import type { IVideoTrack } from "../../../../../player/types";
3
+ import type { Kbps } from "@vkontakte/videoplayer-shared";
4
+ import { LimitAboveRule } from "../limitAboveRule";
5
+ import type { ITuningConfig } from "../../../../../utils/tuningConfig";
6
+ type StallLogsArgs = [forwardBufferHealth: number | undefined, playbackRate: number, reserve: Kbps, playbackRateFactor: number, bitrateFactor: number, tuning: ITuningConfig];
7
+ export declare class StallsRule extends LimitAboveRule<IVideoTrack, IVideoAbrContext, StallLogsArgs> implements IAbrRule<IVideoTrack, IVideoAbrContext> {
8
+ private severeStallOccurred;
9
+ private qualityRestrictionTimer;
10
+ private lastStallDurationRestriction;
11
+ private maxQualityLimitOnStall;
12
+ private predictedThroughputWithoutData;
13
+ constructor(confidence: RuleConfidence);
14
+ execute(context: IVideoAbrContext): IAbrRuleResolution<IVideoTrack>;
15
+ protected createLogMessage(selectedTrack: IVideoTrack, forwardBufferHealth: number | undefined, playbackRate: number, reserve: Kbps, playbackRateFactor: number, bitrateFactor: number, tuning: ITuningConfig): string;
16
+ private updateStallQualityLimits;
17
+ }
18
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { IAbrRule, IAbrRuleResolution, IVideoAbrContext, RuleConfidence } from "../../types";
2
+ import type { IVideoTrack } from "../../../../../player/types";
3
+ import type { Kbps } from "@vkontakte/videoplayer-shared";
4
+ import { LimitAboveRule } from "../limitAboveRule";
5
+ import type { ITuningConfig } from "../../../../../utils/tuningConfig";
6
+ type ThroughputLogsArgs = [forwardBufferHealth: number | undefined, playbackRate: number, reserve: Kbps, playbackRateFactor: number, bitrateFactor: number, estimatedThroughput: Kbps, tuning: ITuningConfig];
7
+ export declare class ThroughputRule extends LimitAboveRule<IVideoTrack, IVideoAbrContext, ThroughputLogsArgs> implements IAbrRule<IVideoTrack, IVideoAbrContext> {
8
+ constructor(confidence: RuleConfidence);
9
+ execute(context: IVideoAbrContext): IAbrRuleResolution<IVideoTrack>;
10
+ protected createLogMessage(selectedTrack: IVideoTrack, forwardBufferHealth: number | undefined, playbackRate: number, reserve: Kbps, playbackRateFactor: number, bitrateFactor: number, estimatedThroughput: Kbps, tuning: ITuningConfig): string;
11
+ }
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { IAbrRule, IAbrRuleResolution, IVideoAbrContext, RuleConfidence } from "../../types";
2
+ import type { IVideoTrack } from "../../../../../player/types";
3
+ import type { QualityLimits, VideoQuality } from "@vkontakte/videoplayer-shared";
4
+ import { type ExactVideoQuality } from "@vkontakte/videoplayer-shared";
5
+ import { LimitAboveRule } from "../limitAboveRule";
6
+ type UpperLimitsLogsArgs = [limitsAreInvalid: boolean, lowestAvailableQuality: ExactVideoQuality | undefined, highestAvailableQuality: ExactVideoQuality | undefined, visible: boolean, limits: QualityLimits, backgroundVideoQualityLimit: VideoQuality];
7
+ export declare class UpperLimitsRule extends LimitAboveRule<IVideoTrack, IVideoAbrContext, UpperLimitsLogsArgs> implements IAbrRule<IVideoTrack, IVideoAbrContext> {
8
+ constructor(confidence: RuleConfidence);
9
+ execute(context: IVideoAbrContext): IAbrRuleResolution<IVideoTrack>;
10
+ protected createLogMessage(selectedTrack: IVideoTrack, limitsAreInvalid: boolean, lowestAvailableQuality: ExactVideoQuality | undefined, highestAvailableQuality: ExactVideoQuality | undefined, visible: boolean, limits: QualityLimits, backgroundVideoQualityLimit: VideoQuality): string;
11
+ }
12
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { IBaseTrack } from "../../../player/types";
2
+ import type { Milliseconds } from "@vkontakte/videoplayer-shared";
3
+ export declare class TrackHistory<T extends IBaseTrack> {
4
+ last: T | undefined;
5
+ history: Record<IBaseTrack["id"], Milliseconds>;
6
+ recordSelection(track: T);
7
+ recordSwitch(track: T | undefined);
8
+ clear();
9
+ }
@@ -0,0 +1,105 @@
1
+ import type { IAudioTrack, IBaseTrack, IVideoTrack } from "../../../player/types";
2
+ import type { IComponentLogger, IObservable, IRectangle, IValueSubject, Kbps, Milliseconds, QualityLimits } from "@vkontakte/videoplayer-shared";
3
+ import type { ITuningConfig } from "../../../utils/tuningConfig";
4
+ import type { Representation, Segment } from "../parsers/types";
5
+ import type { ElementSizeManager } from "../HTMLVideoElement/ElementSizeManager";
6
+ import type { IObservableVideo } from "../HTMLVideoElement/observable";
7
+ export declare enum RuleConfidence {
8
+ Low = 0,
9
+ Normal = 1,
10
+ High = 2
11
+ }
12
+ export declare enum VideoRuleName {
13
+ Buffer = "buffer_rule",
14
+ FitsContainer = "fits_container_rule",
15
+ Stalls = "stalls_rule",
16
+ LowerLimit = "lower_limit_rule",
17
+ UpperLimit = "upper_limit_rule",
18
+ Throughput = "throughput_rule"
19
+ }
20
+ export declare enum AudioRuleName {
21
+ MinAudioForVideo = "min_audio_for_video_rule",
22
+ Throughput = "throughput_rule"
23
+ }
24
+ export declare enum RuleType {
25
+ LimitBelow = "limit_below",
26
+ LimitAbove = "limit_above"
27
+ }
28
+ export interface IUpdatableAbrManagerContext {
29
+ isAuto: boolean;
30
+ videoTracks: IVideoTrack[];
31
+ audioTracks: IAudioTrack[];
32
+ currentVideoTrack: IVideoTrack | undefined;
33
+ desiredVideoTrack: IVideoTrack | undefined;
34
+ limits: QualityLimits;
35
+ forwardBufferHealth?: number;
36
+ forwardVideoBufferRepresentations: Map<Representation["id"], Segment[]> | undefined;
37
+ forwardAudioBufferRepresentations: Map<Representation["id"], Segment[]> | undefined;
38
+ }
39
+ export interface IInitAbrManagerContext {
40
+ tuning: ITuningConfig;
41
+ isSeeked$: IObservable<boolean>;
42
+ currentStallDuration$: IValueSubject<Milliseconds>;
43
+ videoLastDataObtainedTimestamp$: IValueSubject<Milliseconds>;
44
+ throughput$: IValueSubject<Kbps>;
45
+ rtt$: IValueSubject<Milliseconds>;
46
+ element: HTMLVideoElement;
47
+ abrLogger: IComponentLogger;
48
+ panelSize?: IRectangle;
49
+ }
50
+ export interface IVideoElementAbrManagerContext {
51
+ observableVideo: IObservableVideo;
52
+ elementVisible$: IValueSubject<boolean>;
53
+ elementSizeManager: ElementSizeManager;
54
+ }
55
+ export interface IVideoTracksContext {
56
+ videoTracksAsc: IVideoTrack[];
57
+ videoTracksDesc: IVideoTrack[];
58
+ }
59
+ export interface IAudioTracksContext {
60
+ audioTracksAsc: IAudioTrack[];
61
+ audioTracksDesc: IAudioTrack[];
62
+ }
63
+ export type IAbrManagerContext = Omit<IUpdatableAbrManagerContext, "videoTracks" | "audioTracks"> & IVideoElementAbrManagerContext & IInitAbrManagerContext & IVideoTracksContext & IAudioTracksContext;
64
+ export interface IAbrRuleResolution<T extends IBaseTrack> {
65
+ track: T;
66
+ confidence: number;
67
+ type: RuleType;
68
+ name: string;
69
+ logMessage: string;
70
+ }
71
+ export interface IAbrRule<
72
+ T extends IBaseTrack,
73
+ C extends IBaseAbrControllerContext
74
+ > {
75
+ init(): void;
76
+ destroy(): void;
77
+ execute(context: C): IAbrRuleResolution<T>;
78
+ }
79
+ export interface IAbrController<T extends IBaseTrack> {
80
+ init(rules: IAbrRule<T, IBaseAbrControllerContext>[]): void;
81
+ destroy(): void;
82
+ updateContext(context: IBaseAbrControllerContext): void;
83
+ autoSelectTrack(): T;
84
+ }
85
+ export interface IBaseAbrControllerContext extends IVideoTracksContext {
86
+ currentVideoTrack: IVideoTrack | undefined;
87
+ lastVideoTrackSelected: IVideoTrack | undefined;
88
+ tuning: ITuningConfig;
89
+ abrLogger: IComponentLogger;
90
+ estimatedThroughput: Kbps;
91
+ reserve: Kbps;
92
+ forwardBufferHealth: number | undefined;
93
+ playbackRate: number;
94
+ }
95
+ export interface IVideoAbrContext extends IBaseAbrControllerContext {
96
+ container: IRectangle | undefined;
97
+ panelSize: IRectangle | undefined;
98
+ forwardBufferRepresentations: Map<Representation["id"], Segment[]> | undefined;
99
+ limits: QualityLimits;
100
+ visible: boolean;
101
+ severeStallOccurred: boolean;
102
+ lastStallDuration: Milliseconds;
103
+ }
104
+ export type IAudioAbrContext = IBaseAbrControllerContext & IAudioTracksContext;
105
+ export declare const isAudioAbrContext: (context: IBaseAbrControllerContext) => context is IAudioAbrContext;
@@ -0,0 +1,13 @@
1
+ import type { IAudioTrack, IBaseTrack, IVideoTrack } from "../../../player/types";
2
+ export declare enum CompareTrack {
3
+ Descending = -1,
4
+ Ascending = 1
5
+ }
6
+ export declare const isVideoTrack: (track: IBaseTrack) => track is IVideoTrack;
7
+ export declare const getAudioTrackComparator: (type: CompareTrack) => (track1: IAudioTrack, track2: IAudioTrack) => number;
8
+ export declare const getVideoTrackComparator: (type: CompareTrack) => (track1: IVideoTrack, track2: IVideoTrack) => number;
9
+ export declare const getTrackComparator: <T extends IBaseTrack>(compareTrack: CompareTrack) => (track1: T, track2: T) => number;
10
+ export declare const isLowerTrack: unknown;
11
+ export declare const logBase: (base: number, x: number) => number;
12
+ export declare const bitrateFactorFromBufferLevel: (forwardBufferHealth: number, emptyFactor: number, fullFactor: number) => number;
13
+ export declare const getMinPossibleAudioForVideo: (videoTrack: IVideoTrack | undefined, sortedVideoTracksAsc: IVideoTrack[], sortedAudioTracksAsc: IAudioTrack[], minVideoAudioRatio: number) => IAudioTrack | undefined;
@@ -1,4 +1,4 @@
1
- import type { IObservableVideo } from "../../utils/HTMLVideoElement/observable";
1
+ import type { IObservableVideo } from "./observable";
2
2
  import type { IListener, IRectangle, ISubscription, IValueSubject } from "@vkontakte/videoplayer-shared";
3
3
  interface ConnectParams {
4
4
  video: HTMLVideoElement;
@@ -1,5 +1,6 @@
1
1
  import type { ITuningConfig } from "../../../utils/tuningConfig";
2
- type Constraints = Pick<ITuningConfig, "audioVideoSyncRate" | "disableYandexPiP" | "clearVideoElementInnerHTML">;
3
- export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP, clearVideoElementInnerHTML }: Constraints) => HTMLVideoElement;
4
- export declare const dispose: (element: HTMLVideoElement, keepElement?: boolean, clearVideoElementInnerHTML?: boolean) => void;
2
+ type AllocateConstraints = Pick<ITuningConfig, "audioVideoSyncRate" | "disableYandexPiP" | "clearVideoElementInnerHTML" | "reuseOwnVideoElement">;
3
+ type DisposeConstraints = Pick<ITuningConfig, "keepVideoElement" | "clearVideoElementInnerHTML" | "reuseOwnVideoElement">;
4
+ export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP, clearVideoElementInnerHTML, reuseOwnVideoElement }: AllocateConstraints) => HTMLVideoElement;
5
+ export declare const dispose: (videoElement: HTMLVideoElement, { keepVideoElement, clearVideoElementInnerHTML, reuseOwnVideoElement }: DisposeConstraints) => void;
5
6
  export {};
@@ -1,4 +1,4 @@
1
- import type { IListener, IObservable, ISubscription } from "@vkontakte/videoplayer-shared";
1
+ import type { IListener, IObservable, ISubscription, IValueSubject } from "@vkontakte/videoplayer-shared";
2
2
  import type { IVolumeState, PlaybackRate } from "../../player/types";
3
3
  import type { IStateMachine } from "../../utils/StateMachine/types";
4
4
  declare const syncDesiredState: <Value>(desiredState: IStateMachine<Value | undefined>, get: () => Value | undefined, set: (value: Value | undefined) => void, { equal, changed$, onError }?: {
@@ -7,6 +7,8 @@ declare const syncDesiredState: <Value>(desiredState: IStateMachine<Value | unde
7
7
  onError?: IListener<Error | unknown>;
8
8
  }) => ISubscription;
9
9
  export declare const syncVideoLooped: (video: HTMLVideoElement, desiredState: IStateMachine<boolean>, onError?: IListener<Error | unknown>) => ISubscription;
10
- export declare const syncVideoVolumeState: (video: HTMLVideoElement, desiredState: IStateMachine<IVolumeState>, changed$: IObservable<IVolumeState>, onError?: IListener<Error | unknown>) => ISubscription;
10
+ export declare const syncVideoVolumeState: (video: HTMLVideoElement, desiredState: IStateMachine<IVolumeState>, changed$: IObservable<IVolumeState>, onError?: IListener<Error | unknown>, params?: {
11
+ skipVideoElVolumeSync$: IValueSubject<boolean>;
12
+ }) => ISubscription;
11
13
  export declare const syncVideoPlaybackRate: (video: HTMLVideoElement, desiredState: IStateMachine<PlaybackRate>, changed$: IObservable<PlaybackRate>, onError?: IListener<Error | unknown>) => ISubscription;
12
14
  export default syncDesiredState;
@@ -11,6 +11,7 @@ export type ITuningConfig = {
11
11
  * Если true, внутренний video элемент не будет уничтожаться при реините провайдера
12
12
  * и при создании нового экземляра Player.
13
13
  * Будет веcти себя аналогично элементу переданному снаружи
14
+ * Для кейса прямого использовани ядра
14
15
  */
15
16
  keepVideoElement: boolean;
16
17
  /**
@@ -136,11 +137,15 @@ export type ITuningConfig = {
136
137
  liveStallReinitInterval: Milliseconds;
137
138
  ignoreNetworkErrorsOnLoadInit: boolean;
138
139
  bufferTolerance: Milliseconds;
139
- actionTimeShiftFromSegment: Milliseconds;
140
+ minNativeBufferSize: Milliseconds;
141
+ removeTimeShiftFromSegment: Milliseconds;
140
142
  tickMaintainInterval: Milliseconds;
141
143
  minSafeBufferToPlay: Milliseconds;
142
144
  useBufferHoldingOnlyOnStall: boolean;
145
+ useAbortResetNativeBufferMutex: boolean;
143
146
  useNewStallExitPolicy: boolean;
147
+ useNewAbr: boolean;
148
+ useDynamicBirtateRule: boolean;
144
149
  videoStreamRepresentaionsFilter: [VideoQuality, number, VideoCodec][];
145
150
  };
146
151
  dashCmafLive: {
@@ -188,6 +193,7 @@ export type ITuningConfig = {
188
193
  * В случае превышения лимита при продолжении воспроизведения поток будет перезапущен с пересчитанным `offset`.
189
194
  */
190
195
  maxPausedTime: number;
196
+ catchupLiveForMutedInactiveTab: boolean;
191
197
  };
192
198
  enableWakeLock: boolean;
193
199
  enableTelemetryAtStart: boolean;
@@ -213,6 +219,8 @@ export type ITuningConfig = {
213
219
  seekNearDurationBias: Seconds;
214
220
  dashSeekInSegmentDurationThreshold: Milliseconds;
215
221
  dashSeekInSegmentAlwaysSeekDelta: Milliseconds;
222
+ useDelayedPlaybackHangupWithData: boolean;
223
+ playbackHangupNoDataThreshold: Milliseconds;
216
224
  endGapTolerance: Milliseconds;
217
225
  stallIgnoreThreshold: Milliseconds;
218
226
  gapWatchdogInterval: Milliseconds;
@@ -226,7 +234,16 @@ export type ITuningConfig = {
226
234
  useNewAutoSelectVideoTrack: boolean;
227
235
  useSafariEndlessRequestBugfix: boolean;
228
236
  isAudioDisabled: boolean;
237
+ /**
238
+ * Разрешает ядру автостарт только если страница, на которой находится плеер активна
239
+ * использует document.hidden
240
+ */
229
241
  autoplayOnlyInActiveTab: boolean;
242
+ /**
243
+ * Разрешает ядру автостарт только если пдеер находится в зоне видимости
244
+ * использует requestAnimationFrame
245
+ */
246
+ autoplayOnlyIfVisible: boolean;
230
247
  dynamicImportTimeout: Milliseconds;
231
248
  maxPlaybackTransitionInterval: Milliseconds;
232
249
  providerErrorLimit: number;
@@ -270,7 +287,6 @@ export type ITuningConfig = {
270
287
  */
271
288
  disableYandexPiP?: boolean;
272
289
  asyncResolveClientChecker?: boolean;
273
- autostartOnlyIfVisible?: boolean;
274
290
  /**
275
291
  * Если включен, то переключаем видео в состояние паузы при окончании видео.
276
292
  */
@@ -287,6 +303,12 @@ export type ITuningConfig = {
287
303
  sendDashLiveDebug?: boolean;
288
304
  logDashLiveDebug?: boolean;
289
305
  useInvalidBufferFix?: boolean;
306
+ /**
307
+ * Включает режим переиспользования видеоэлемента плеера между инстансами плеера
308
+ * (нужно для передачи разрешений браузера от одного плеера другому, например: стартовать со звуком)
309
+ * (Скорее всего имеет смысл включить такой же флаг в настройках ui)
310
+ */
311
+ reuseOwnVideoElement?: boolean;
290
312
  };
291
313
  export type IOptionalTuningConfig = RecursivePartial<ITuningConfig>;
292
314
  export declare const fillDefault: (partial: IOptionalTuningConfig) => ITuningConfig;
@@ -1,20 +0,0 @@
1
- import type { IObservableVideo } from "../../utils/HTMLVideoElement/observable";
2
- import type { IListener, IRectangle, ISubscription } from "@vkontakte/videoplayer-shared";
3
- import { ValueSubject } from "@vkontakte/videoplayer-shared";
4
- interface ConnectParams {
5
- video: HTMLVideoElement;
6
- observableVideo: IObservableVideo;
7
- }
8
- export declare class ElementSizeManager {
9
- private readonly subscription;
10
- private readonly pipSize$;
11
- private readonly videoSize$;
12
- private readonly elementSize$;
13
- private pictureInPictureWindowRemoveEventListener;
14
- connect({ observableVideo, video }: ConnectParams): void;
15
- getValue(): IRectangle<number> | undefined;
16
- subscribe(listener: IListener<IRectangle<number> | undefined>, error?: IListener<Error | unknown>): ISubscription;
17
- getObservable(): ValueSubject<IRectangle<number> | undefined>;
18
- destroy(): void;
19
- }
20
- export {};