@vkontakte/videoplayer-core 2.0.177 → 2.0.178-dev.a64f918b5.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.177",
3
+ "version": "2.0.178-dev.a64f918b5.0",
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.106"
45
+ "@vkontakte/videoplayer-shared": "1.0.107-dev.a64f918b5.0"
46
46
  }
47
47
  }
package/types/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { IMpegSource, IDashSource, IHLSSource, IDashURLSource, IHLSLiveSour
3
3
  import type { VideoCodec } from "./player/types";
4
4
  import { VideoFormat, Surface, PredefinedQualityLimits, VideoCodecName } from "./player/types";
5
5
  import Player from "./player/Player";
6
- import type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, ISources, ICueSettings, IExternalTextTrack, ITextTrack, PlaybackRate, IVideoStream, IAudioStream } from "./player/types";
6
+ import type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, ISources, ICueSettings, IExternalTextTrack, ITextTrack, PlaybackRate, IVideoStream, IAudioStream, StartEnd, HttpConnectionMetrics, HttpDownloadMetrics } from "./player/types";
7
7
  import { PlaybackState, ChromecastState, HttpConnectionType } from "./player/types";
8
8
  import type { IOptionalTuningConfig } from "./utils/tuningConfig";
9
9
  export { clientChecker, isMobile } from "./utils/ClientChecker";
@@ -15,5 +15,5 @@ import { Subscription, Observable, Subject, ValueSubject, VideoQuality } from "@
15
15
  * @deprecated
16
16
  */
17
17
  declare const SDK_VERSION: string;
18
- export type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, IOptionalTuningConfig, ILogEntry, ISources, IExternalTextTrack, ITextTrack, ISubscription, IUnsubscriber, IObservable, IEmitter, IValueObservable, IValue, IOperator, IListener, IMpegSource, IDashSource, IDashURLSource, IHLSSource, IHLSLiveSource, URLSource, RawSource, URLSourceWithSeek, ExactVideoQuality, IRange, ISeekRequest, ICueSettings, PlaybackRate, IVideoStream, IAudioStream };
18
+ export type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, IOptionalTuningConfig, ILogEntry, ISources, IExternalTextTrack, ITextTrack, ISubscription, IUnsubscriber, IObservable, IEmitter, IValueObservable, IValue, IOperator, IListener, IMpegSource, IDashSource, IDashURLSource, IHLSSource, IHLSLiveSource, URLSource, RawSource, URLSourceWithSeek, ExactVideoQuality, IRange, ISeekRequest, ICueSettings, PlaybackRate, IVideoStream, IAudioStream, StartEnd, HttpConnectionMetrics, HttpDownloadMetrics };
19
19
  export { Player, PlaybackState, ChromecastState, HttpConnectionType, Surface, Subscription, VideoFormat, VideoQuality, Observable, Subject, ValueSubject, VERSION, SDK_VERSION, PredefinedQualityLimits, VideoCodec, VideoCodecName };
@@ -1,4 +1,4 @@
1
- import type { IAbrController, IAbrRule, IBaseAbrControllerContext, IRuleInitContext, RuleLogData } from "./types";
1
+ import type { AbrLimitSources, IAbrController, IAbrRule, IBaseAbrControllerContext, IRuleInitContext, RuleLogData } from "./types";
2
2
  import type { IBaseTrack } from "../../../player/types";
3
3
  export declare const formatRuleLog: ({ name, ...logData }: RuleLogData) => string;
4
4
  export default class AbrController<
@@ -8,7 +8,9 @@ export default class AbrController<
8
8
  private history;
9
9
  private rules;
10
10
  private _context;
11
+ private _limitSources;
11
12
  get context(): C;
13
+ get limitSources(): AbrLimitSources;
12
14
  init(rules: IAbrRule<T, C>[], initContext: IRuleInitContext): void;
13
15
  destroy(): void;
14
16
  updateContext(context: C): void;
@@ -5,6 +5,10 @@ import type { Representation, Segment } from "../parsers/types";
5
5
  import type { ElementSizeManager } from "../HTMLVideoElement/ElementSizeManager";
6
6
  import type { IObservableMediaElement } from "../HTMLVideoElement/observable";
7
7
  import type { AbrPhase } from "./controllers/abrPhaseController";
8
+ export type AbrLimitSources = {
9
+ readonly above: string | undefined;
10
+ readonly below: string | undefined;
11
+ };
8
12
  export declare enum RuleConfidence {
9
13
  Low = 0,
10
14
  Normal = 1,
@@ -97,6 +101,7 @@ export interface IAbrController<T extends IBaseTrack> {
97
101
  destroy(): void;
98
102
  updateContext(context: IBaseAbrControllerContext): void;
99
103
  autoSelectTrack(rules?: IAbrRule<T, IBaseAbrControllerContext>[]): T;
104
+ readonly limitSources: AbrLimitSources;
100
105
  }
101
106
  export interface IBaseAbrControllerContext extends IVideoTracksContext {
102
107
  currentVideoTrack: Nullable<IVideoTrack>;
@@ -1,6 +1,6 @@
1
1
  import type { ITuningConfig } from "../../../utils/tuningConfig";
2
- type DisposeConstraints = Pick<ITuningConfig, "reuseOwnVideoElement" | "clearAudioElementOnDispose">;
3
- export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP, reuseOwnVideoElement }: ITuningConfig) => HTMLVideoElement;
2
+ type DisposeConstraints = Pick<ITuningConfig, "reuseOwnVideoElementOnBackgroundTabOnly" | "reuseOwnVideoElement" | "clearAudioElementOnDispose">;
3
+ export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP, reuseOwnVideoElement, reuseOwnVideoElementOnBackgroundTabOnly }: ITuningConfig) => HTMLVideoElement;
4
4
  export declare const initializeAudio: (element: HTMLAudioElement) => HTMLAudioElement;
5
5
  export declare const dispose: (element: HTMLMediaElement, constraints: DisposeConstraints) => void;
6
6
  export {};
@@ -465,6 +465,7 @@ export type ITuningConfig = {
465
465
  * (Скорее всего имеет смысл включить такой же флаг в настройках ui)
466
466
  */
467
467
  reuseOwnVideoElement?: boolean;
468
+ reuseOwnVideoElementOnBackgroundTabOnly?: boolean;
468
469
  /**
469
470
  * Обрабатываем все сетевые ошибки, которые приходят с бэка.
470
471
  * на http 500 не падаем в краш.