@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.
- package/es2015.cjs +54 -58
- package/es2015.esm.js +60 -64
- package/esnext.cjs +56 -60
- package/esnext.esm.js +55 -59
- package/evergreen.esm.js +55 -59
- package/package.json +2 -2
- package/types/providers/DashProvider/baseDashProvider.d.ts +0 -2
- package/types/providers/DashProvider/lib/buffer.d.ts +2 -0
- package/types/providers/DashProvider/lib/fetcher.d.ts +6 -4
- package/types/providers/DashProvider/lib/player.d.ts +1 -0
- package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +1 -2
- package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +0 -1
- package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +1 -1
- package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +1 -2
- package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +2 -0
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.versionA.d.ts +3 -1
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.versionA.d.ts +1 -0
- package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +6 -4
- package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +2 -0
- package/types/providers/ProviderContainer/Mayday/heuristics/TvFetcherErrorHeuristic.d.ts +10 -0
- package/types/providers/ProviderContainer/Mayday/index.d.ts +1 -0
- package/types/providers/ProviderContainer/index.d.ts +3 -1
- package/types/providers/utils/Abr/types.d.ts +0 -2
- package/types/providers/utils/HTMLVideoElement/destroy.d.ts +1 -1
- package/types/providers/utils/HTMLVideoElement/pool.d.ts +2 -3
- package/types/providers/utils/segmentCache/IndexedDbSegmentCacheStorage.d.ts +52 -0
- package/types/providers/utils/segmentCache/SegmentCache.d.ts +40 -0
- package/types/providers/utils/segmentCache/constants.d.ts +20 -0
- package/types/providers/utils/segmentCache/index.d.ts +8 -0
- package/types/providers/utils/segmentCache/segmentCacheDb.d.ts +25 -0
- package/types/providers/utils/segmentCache/segmentCacheUtils.d.ts +25 -0
- package/types/providers/utils/segmentCache/types.d.ts +74 -0
- package/types/utils/autoSelectTrack.d.ts +3 -4
- package/types/utils/tuningConfig.d.ts +10 -25
- package/types/providers/DashProvider/lib/urlsCache.d.ts +0 -23
- package/types/providers/DashProviderVirtual/lib/urlsCache.d.ts +0 -22
- 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 {};
|