@vkontakte/videoplayer-core 2.0.173-dev.6bd1cf94d.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.173-dev.6bd1cf94d.0",
3
+ "version": "2.0.173",
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.102-dev.6bd1cf94d.0"
45
+ "@vkontakte/videoplayer-shared": "1.0.102"
46
46
  }
47
47
  }
@@ -1,4 +1,4 @@
1
- import { BaseVirtualBufferManager } from "./baseVirtualBufferManager.versionA";
1
+ import { BaseVirtualBufferManager } from "./baseVirtualBufferManager";
2
2
  import type { Dependencies, IBufferPlaybackQueueItem, ISomeDataLoadedCallbackParams, IVirtualBufferManager } from "../types";
3
3
  import type { ByteRangeSegment, Representation, StreamKind } from "../../../../utils/parsers/types";
4
4
  import type { NativeBufferManager } from "../nativeBufferManager";
@@ -1,4 +1,4 @@
1
- import { TemplateVirtualBufferManager } from "./templateVirtualBufferManager.versionA";
1
+ import { TemplateVirtualBufferManager } from "./templateVirtualBufferManager";
2
2
  import type { Manifest, Representation, StreamKind, TemplateSegment, TemplateSegmentReference } from "../../../../utils/parsers/types";
3
3
  import type { NativeBufferManager } from "../nativeBufferManager";
4
4
  import type { Dependencies, IBufferPlaybackQueueItem, ISomeDataLoadedCallbackParams } from "../types";
@@ -1,4 +1,4 @@
1
- import { BaseVirtualBufferManager } from "./baseVirtualBufferManager.versionA";
1
+ import { BaseVirtualBufferManager } from "./baseVirtualBufferManager";
2
2
  import type { Dependencies, IBufferPlaybackQueueItem, ISomeDataLoadedCallbackParams, IVirtualBufferManager } from "../types";
3
3
  import type { TemplateSegment, Representation, StreamKind } from "../../../../utils/parsers/types";
4
4
  import type { NativeBufferManager } from "../nativeBufferManager";
@@ -202,6 +202,7 @@ export type ITuningConfig = {
202
202
  usePersistentGaps: boolean;
203
203
  abrThrottle: number;
204
204
  useVideoElementWaitingCurrentTimeReassign: boolean;
205
+ useVideoElementProgressCurrentTimeReassign: boolean;
205
206
  stallWatchdogInterval: Milliseconds;
206
207
  liveUpdateInterval: Milliseconds;
207
208
  liveStallReinitInterval: Milliseconds;
@@ -252,19 +253,21 @@ export type ITuningConfig = {
252
253
  /** Включает отправку телеметрии трейсера (resume) при превышении stall watchdog */
253
254
  tracerResumeOnUnexpectedStall: boolean;
254
255
  /**
255
- * При отмене signal текущей задачи sourceBufferTaskQueue (например, через
256
- * `maintainAbortController.abort()` в `prepareSeek`) прерывать зависшую MSE-операцию
257
- * через `buffer.abort()`. Без этого `completeTask` не вызовется при залипшем
258
- * SourceBuffer и промис `append`/`remove` зависнет навечно — `prepareSeek`
259
- * застрянет на `await maintainMutexPromise` (V3 deadlock), stall растёт до
260
- * `crashOnStallTimeout=25с`.
261
- *
262
- * По умолчанию false (opt-in). Дешёвый фикс, но поведенческое изменение:
263
- * единственный побочный эффект — лишний `buffer.abort()` при штатной отмене
264
- * maintain (например, при обычном seek), но MSE `abort()` без активной операции
265
- * — no-op по спеке. Включать поэтапно, начиная с процента.
256
+ * Эксперимент: при `true` отключает `await this.reinitDecoderIfNeeded(shouldForceSeek)`
257
+ * внутри `stallWatchdogIntervalCallback`. По умолчанию `false` — текущее поведение
258
+ * (force-seek раз в секунду при глубоком stall). Гипотеза: возможно, force-seek из
259
+ * watchdog'а сам по себе тормозит восстановление на длинных столлах (аналог B1,
260
+ * но через полное отключение reinit, а не троттлинг частоты).
261
+ */
262
+ disableStallWatchdogReinitDecoder: boolean;
263
+ /**
264
+ * Эксперимент: при `destroy()` резолвить callback'и `currentTask` и всех задач в очереди,
265
+ * чтобы их промисы (`await this.queue.append(...)`, `await this.queue.remove(...)`) не висели
266
+ * вечно после разрушения очереди. По умолчанию `false` — поведение как до эксперимента:
267
+ * `queue = []; currentTask = null` без вызова callback'ов, промисы зависают (pre-existing behaviour).
268
+ * Включать поэтапно, начиная с процента трафика, для A/B по метрикам утечек и восстановления.
266
269
  */
267
- abortSourceBufferOnSignal: boolean;
270
+ resolveQueueOnDestroy: boolean;
268
271
  };
269
272
  dashCmafLive: {
270
273
  externalStopControl: boolean;