@vkontakte/videoplayer-core 2.0.170 → 2.0.171-dev.4982aad68.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.
Files changed (37) hide show
  1. package/es2015.cjs +54 -58
  2. package/es2015.esm.js +60 -64
  3. package/esnext.cjs +56 -60
  4. package/esnext.esm.js +55 -59
  5. package/evergreen.esm.js +55 -59
  6. package/package.json +2 -2
  7. package/types/providers/DashProvider/baseDashProvider.d.ts +0 -2
  8. package/types/providers/DashProvider/lib/buffer.d.ts +2 -0
  9. package/types/providers/DashProvider/lib/fetcher.d.ts +6 -4
  10. package/types/providers/DashProvider/lib/player.d.ts +1 -0
  11. package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +1 -2
  12. package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +0 -1
  13. package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +1 -1
  14. package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +1 -2
  15. package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +2 -0
  16. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.versionA.d.ts +3 -1
  17. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.versionA.d.ts +1 -0
  18. package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +6 -4
  19. package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +2 -0
  20. package/types/providers/ProviderContainer/Mayday/heuristics/TvFetcherErrorHeuristic.d.ts +10 -0
  21. package/types/providers/ProviderContainer/Mayday/index.d.ts +1 -0
  22. package/types/providers/ProviderContainer/index.d.ts +3 -1
  23. package/types/providers/utils/Abr/types.d.ts +0 -2
  24. package/types/providers/utils/HTMLVideoElement/destroy.d.ts +1 -1
  25. package/types/providers/utils/HTMLVideoElement/pool.d.ts +2 -3
  26. package/types/providers/utils/segmentCache/IndexedDbSegmentCacheStorage.d.ts +52 -0
  27. package/types/providers/utils/segmentCache/SegmentCache.d.ts +40 -0
  28. package/types/providers/utils/segmentCache/constants.d.ts +20 -0
  29. package/types/providers/utils/segmentCache/index.d.ts +8 -0
  30. package/types/providers/utils/segmentCache/segmentCacheDb.d.ts +25 -0
  31. package/types/providers/utils/segmentCache/segmentCacheUtils.d.ts +25 -0
  32. package/types/providers/utils/segmentCache/types.d.ts +74 -0
  33. package/types/utils/autoSelectTrack.d.ts +3 -4
  34. package/types/utils/tuningConfig.d.ts +10 -25
  35. package/types/providers/DashProvider/lib/urlsCache.d.ts +0 -23
  36. package/types/providers/DashProviderVirtual/lib/urlsCache.d.ts +0 -22
  37. package/types/providers/utils/Abr/rules/video/failedVideoTrackRule.d.ts +0 -14
@@ -5,6 +5,7 @@ import { IOSPreferredFormat } from "../enums/IOSPreferredFormat";
5
5
  import type { Byte, Kbps, Milliseconds, RecursivePartial, Seconds } from "@vkontakte/videoplayer-shared";
6
6
  import { type ExactVideoQuality, VideoQuality } from "@vkontakte/videoplayer-shared";
7
7
  import { AudioRuleName, VideoRuleName } from "../providers/utils/Abr/types";
8
+ import type { SegmentCacheConfig } from "../providers/utils/segmentCache/types";
8
9
  export type ITuningConfig = {
9
10
  /** @deprecated */
10
11
  configName?: string[];
@@ -15,19 +16,6 @@ export type ITuningConfig = {
15
16
  heuristics: string[];
16
17
  };
17
18
  /**
18
- * Если true, внутренний video элемент не будет уничтожаться при реините провайдера
19
- * и при создании нового экземляра Player.
20
- * Будет веcти себя аналогично элементу переданному снаружи
21
- * Для кейса прямого использовани ядра
22
- */
23
- keepVideoElement: boolean;
24
- /**
25
- * Временный флаг для тестирования очистки video элемента
26
- * Если true, при очистке будет вызван innerHTML = '' для очистки дочерних элементов трэков
27
- * В противном случае они размножаются
28
- */
29
- clearVideoElementInnerHTML: boolean;
30
- /**
31
19
  * Включает очистку состояния плеера при вызове метода stop()
32
20
  */
33
21
  allowPlayerReuse: boolean;
@@ -182,7 +170,6 @@ export type ITuningConfig = {
182
170
  useSmartRepresentationSwitch: boolean;
183
171
  stallForceSeekOncePerStall: boolean;
184
172
  useFetchPriorityHints: boolean;
185
- useAbortMSEFix: boolean;
186
173
  enableBaseUrlSupport: boolean;
187
174
  maxSegmentRetryCount: number;
188
175
  sourceOpenTimeout: number;
@@ -208,9 +195,7 @@ export type ITuningConfig = {
208
195
  abrVideoRules: VideoRuleName[];
209
196
  abrAudioRules: AudioRuleName[];
210
197
  useDynamicBirtateRule: boolean;
211
- useNewFailoverLogic: boolean;
212
198
  useFailoverHostsOnAllProviderCrash: boolean;
213
- videoTrackBanAfterProviderFail: Milliseconds;
214
199
  saveData3gQualityLimit: ExactVideoQuality;
215
200
  saveData2gQualityLimit: ExactVideoQuality;
216
201
  useConnectionDataUpperLimit: boolean;
@@ -431,15 +416,6 @@ export type ITuningConfig = {
431
416
  */
432
417
  handleExtendedNetworkErrorsSet?: boolean;
433
418
  /**
434
- * Кэшируем ответы от сервера руками, так как из за динамичесокй природы некоторых параметров в урле
435
- * браузер это не может сделать.
436
- */
437
- useUrlCacheMechanism?: boolean;
438
- /**
439
- * Очищаем кэш урлов при падение провайдера.
440
- */
441
- dropUrlCacheWhenProviderCrashed?: boolean;
442
- /**
443
419
  * При смене/реините провайдера игнорируем результат того, смогло видео заиграть или нет.
444
420
  */
445
421
  ignoreForcePlayResultWhenProviderChanged?: boolean;
@@ -454,6 +430,15 @@ export type ITuningConfig = {
454
430
  useDurationFromSegments: boolean;
455
431
  /** включен режим проигрывания только аудио (без видео) */
456
432
  audioOnly: boolean;
433
+ /**
434
+ * Переводить провайдер в READY по loadedmetadata вместо canplay.
435
+ * canplay означает, что видео уже может играться, что избыточно для READY —
436
+ * достаточно получить манифест (loadedmetadata).
437
+ * Применяется только когда желаемое состояние — READY (preload): при автоплее
438
+ * провайдер по-прежнему ждёт canplay, чтобы play() не вызывался до появления данных.
439
+ */
440
+ readyOnLoadedMetadata: boolean;
441
+ segmentCache: SegmentCacheConfig;
457
442
  };
458
443
  export type IOptionalTuningConfig = RecursivePartial<ITuningConfig>;
459
444
  export declare const fillDefault: (partial: IOptionalTuningConfig) => ITuningConfig;
@@ -1,23 +0,0 @@
1
- export type CacheManager = {
2
- get: () => Promise<Response | null>;
3
- set: (response: Response) => void;
4
- };
5
- /**
6
- * Пытаемся добиться кэширования вызовов.
7
- * Сейчас есть проблема, что expires и sig меняются, хотя контент не меняется, поэтому ходим мимо кэша.
8
- * Из за этого обрабатываем кэш вручную.
9
- */
10
- export declare const createCacheManager: (url: string) => Promise<CacheManager>;
11
- export declare function canUseCacheApi(): boolean;
12
- export declare function normalizeUrl(url: string): string;
13
- /**
14
- * Проверяет, не просрочен ли кэшированный ответ
15
- */
16
- export declare function isResponseExpired(response: Response): boolean;
17
- export declare function cloneResponse(response: Response, url: string): Response;
18
- /**
19
- * Извлекает expires из оригинального URL (параметр expires1)
20
- * Предполагается, что expires1 — timestamp в секундах
21
- */
22
- export declare function getExpiresFromUrl(url: string): number;
23
- export declare const dropUrlsCache: () => Promise<void>;
@@ -1,22 +0,0 @@
1
- export type CacheManager = {
2
- get: () => Promise<Response | null>;
3
- set: (response: Response) => Promise<void>;
4
- };
5
- /**
6
- * Пытаемся добиться кэширования вызовов.
7
- * Сейчас есть проблема, что expires и sig меняются, хотя контент не меняется, поэтому ходим мимо кэша.
8
- * Из за этого обрабатываем кэш вручную.
9
- */
10
- export declare const createCacheManager: (url: string) => Promise<CacheManager>;
11
- export declare function canUseCacheApi(): boolean;
12
- export declare function normalizeUrl(url: string): string;
13
- /**
14
- * Проверяет, не просрочен ли кэшированный ответ
15
- */
16
- export declare function isResponseExpired(response: Response): boolean;
17
- export declare function cloneResponse(response: Response, url: string): Response;
18
- /**
19
- * Извлекает expires из оригинального URL (параметр expires1)
20
- * Предполагается, что expires1 — timestamp в секундах
21
- */
22
- export declare function getExpiresFromUrl(url: string): number;
@@ -1,14 +0,0 @@
1
- import type { IAbrRule, IAbrRuleResolution, IRuleInitContext, IVideoAbrContext } from "../../types";
2
- import type { IVideoTrack } from "../../../../../player/types";
3
- import type { Nullable } from "@vkontakte/videoplayer-shared";
4
- import { LimitAboveRule } from "../limitAboveRule";
5
- import type { RulePhaseConfig } from "../../controllers/abrPhaseController";
6
- type FailedVideoTracLogsArgs = [banTrack: Nullable<IVideoTrack>];
7
- export declare class FailedVideoTrackRule extends LimitAboveRule<IVideoTrack, IVideoAbrContext, FailedVideoTracLogsArgs> implements IAbrRule<IVideoTrack, IVideoAbrContext> {
8
- protected banTrack: Nullable<IVideoTrack>;
9
- constructor(phaseConfig: RulePhaseConfig);
10
- init(initContext: IRuleInitContext): void;
11
- execute(context: IVideoAbrContext): IAbrRuleResolution<IVideoTrack>;
12
- protected createLogMessage(selectedTrack: IVideoTrack, banTrack: Nullable<IVideoTrack>): string;
13
- }
14
- export {};