@vkontakte/videoplayer-core 2.0.173-dev.ebda080eb.0 → 2.0.173

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 (27) hide show
  1. package/es2015.cjs +16 -16
  2. package/es2015.esm.js +16 -16
  3. package/esnext.cjs +15 -15
  4. package/esnext.esm.js +8 -8
  5. package/evergreen.esm.js +8 -8
  6. package/package.json +2 -2
  7. package/types/providers/DashProvider/lib/buffer.d.ts +0 -2
  8. package/types/providers/DashProvider/lib/fetcher.d.ts +4 -8
  9. package/types/providers/DashProvider/lib/player.d.ts +0 -1
  10. package/types/providers/DashProvider/lib/urlsCache.d.ts +23 -0
  11. package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +0 -2
  12. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/{baseVirtualBufferManager.versionA.d.ts → baseVirtualBufferManager.d.ts} +1 -3
  13. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/{byteRangeVirtualBufferManager.versionA.d.ts → byteRangeVirtualBufferManager.d.ts} +1 -2
  14. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/liveVirtualBuffer.d.ts +1 -1
  15. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/{templateVirtualBufferManager.versionA.d.ts → templateVirtualBufferManager.d.ts} +1 -1
  16. package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +4 -8
  17. package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +0 -2
  18. package/types/providers/DashProviderVirtual/lib/urlsCache.d.ts +22 -0
  19. package/types/providers/ProviderContainer/index.d.ts +0 -3
  20. package/types/utils/tuningConfig.d.ts +24 -14
  21. package/types/providers/utils/segmentCache/IndexedDbSegmentCacheStorage.d.ts +0 -54
  22. package/types/providers/utils/segmentCache/SegmentCache.d.ts +0 -59
  23. package/types/providers/utils/segmentCache/constants.d.ts +0 -20
  24. package/types/providers/utils/segmentCache/index.d.ts +0 -8
  25. package/types/providers/utils/segmentCache/segmentCacheDb.d.ts +0 -25
  26. package/types/providers/utils/segmentCache/segmentCacheUtils.d.ts +0 -25
  27. package/types/providers/utils/segmentCache/types.d.ts +0 -76
@@ -1,76 +0,0 @@
1
- import type { Byte, IRange } from "@vkontakte/videoplayer-shared";
2
- import type { CacheEntryType } from "./constants";
3
- export type InitSegmentRangeType = "init" | "index";
4
- export interface SegmentCacheEntry {
5
- data: ArrayBuffer;
6
- segmentIndex: number;
7
- }
8
- export interface InitSegmentParams {
9
- normalizedUrl: string;
10
- rangeType: InitSegmentRangeType;
11
- range: IRange<Byte>;
12
- }
13
- export interface SetMediaSegmentParams {
14
- type: "media";
15
- normalizedUrl: string;
16
- segmentIndex: number;
17
- data: ArrayBuffer;
18
- }
19
- export interface SetInitSegmentParams {
20
- type: "init";
21
- normalizedUrl: string;
22
- rangeType: InitSegmentRangeType;
23
- range: IRange<Byte>;
24
- data: ArrayBuffer;
25
- }
26
- export type SetSegmentParams = SetMediaSegmentParams | SetInitSegmentParams;
27
- export interface ISegmentCacheStorage {
28
- getSegments(normalizedUrl: string, indices: number[]): Promise<Map<number, ArrayBuffer>>;
29
- setSegment(params: SetSegmentParams): Promise<void>;
30
- /** Удаляет media-записи по индексам сегментов. Используется для самолечения: запись с несовпадающей длиной удаляется и сегмент перекачивается */
31
- deleteSegments(normalizedUrl: string, indices: number[]): Promise<void>;
32
- getInitSegment(params: InitSegmentParams): Promise<ArrayBuffer | null>;
33
- /** Полная очистка кэша (все записи, без привязки к url) с рассылкой события другим инстансам */
34
- clear(): Promise<void>;
35
- destroy(): void;
36
- }
37
- export interface CacheMetadataEntry {
38
- index: number;
39
- byteRange: IRange<Byte>;
40
- }
41
- export interface CacheMetadata {
42
- segments: CacheMetadataEntry[];
43
- }
44
- export interface SegmentCacheConfig {
45
- /** Включает кэширование media-сегментов в IndexedDB */
46
- enabled: boolean;
47
- /** Лимит суммарного размера кэша (media + init/index сегменты) в байтах. При QuotaExceededError автоматически опускается до текущего размера */
48
- maxTotalSizeBytes: number;
49
- /** Доля от эффективного лимита, при превышении которой запускается LRU-эвикт (0.9 = 90%) */
50
- evictionThreshold: number;
51
- /** Доля от максимального хранимого кэша, до которой LRU-эвикт очищает кэш (0.7 = 70%).
52
- * Должна быть ниже evictionThreshold: запас между ними не даёт эвикту срабатывать на каждую запись у границы лимита
53
- * */
54
- evictionTargetPercent: number;
55
- /** Максимальный объём данных в байтах, который LRU-эвикт удаляет за один проход (ограничивает длительность одной транзакции) */
56
- evictionBatchMaxBytes: number;
57
- /** Доля от maxTotalStoredBytes, которую нужно освободить при QuotaExceededError (0.5 = 50%) */
58
- quotaExceededEvictPercent: number;
59
- /** TTL для media-сегментов в миллисекундах. Протухшие записи удаляются при чтении и при rehydrate */
60
- ttlMs: number;
61
- /** TTL для init/index-сегментов в миллисекундах (обычно длиннее, т.к. они стабильнее) */
62
- initTtlMs: number;
63
- /** Стратегия очистки кэша при ошибках декодера/фетчера: 'once' — один раз за жизнь контейнера, 'always' — на каждую ошибку */
64
- clearOnErrorStrategy: "once" | "always";
65
- }
66
- /**
67
- * Единая запись кэша. Ключ передаётся явно (out-of-line) через createMediaKey / createInitKey.
68
- */
69
- export interface CacheRecord {
70
- normalizedUrl: string;
71
- data: ArrayBuffer;
72
- byteLength: number;
73
- createdAt: number;
74
- lastAccessAt: number;
75
- }
76
- export type CachePrimaryKey = [string, CacheEntryType, number, number];