@vkontakte/videoplayer-core 2.0.60 → 2.0.62
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.js +4 -4
- package/es2015.esm.js +4 -4
- package/es2018.cjs.js +4 -4
- package/es2018.esm.js +4 -4
- package/esnext.cjs.js +4 -4
- package/esnext.esm.js +4 -4
- package/package.json +2 -2
- package/packages/sdk/src/providers/DashIFProvider/dashjsTypes.d.ts +8 -2
- package/packages/sdk/src/providers/DashVKProvider/lib/buffer.d.ts +3 -1
- package/packages/sdk/src/providers/DashVKProvider/lib/sourceBufferTaskQueue.d.ts +1 -0
- package/providers/DashIFProvider/observableManifestLoader.d.ts +3 -0
- package/providers/ProviderContainer/utils/playbackHangup.d.ts +1 -1
- package/utils/tuningConfig.d.ts +7 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/videoplayer-core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.62",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Videoplayer core library based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"**/*.d.ts"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@vkontakte/videoplayer-shared": "^1.0.
|
|
17
|
+
"@vkontakte/videoplayer-shared": "^1.0.14",
|
|
18
18
|
"dashjs": "4.4.0",
|
|
19
19
|
"hls.js": "1.1.5",
|
|
20
20
|
"lodash": "4.17.21"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { DashMetrics, FragmentRequest } from 'dashjs';
|
|
1
|
+
import type { DashMetrics, FragmentRequest, MediaPlayerEvents, MediaType, Event } from 'dashjs';
|
|
2
2
|
export interface IInternalFragmentRequest extends FragmentRequest {
|
|
3
3
|
range?: string;
|
|
4
4
|
}
|
|
5
5
|
export interface IInternalDashMetrics extends DashMetrics {
|
|
6
|
-
addHttpRequest(request: FragmentRequest, responseURL: string, responseStatus: number, responseHeaders:
|
|
6
|
+
addHttpRequest(request: FragmentRequest, responseURL: string, responseStatus: number, responseHeaders: string, traces: unknown[]): void;
|
|
7
7
|
}
|
|
8
8
|
export interface IDashJSLoadConfig {
|
|
9
9
|
abort?: (unk: unknown) => void;
|
|
@@ -29,3 +29,9 @@ export interface ILoaderConfig {
|
|
|
29
29
|
requestTimeout: unknown;
|
|
30
30
|
errors: unknown;
|
|
31
31
|
}
|
|
32
|
+
export interface FragmentLoadingStartedEvent extends Event {
|
|
33
|
+
type: MediaPlayerEvents['FRAGMENT_LOADING_STARTED'];
|
|
34
|
+
request: FragmentRequest;
|
|
35
|
+
mediaType: MediaType;
|
|
36
|
+
streamId: string;
|
|
37
|
+
}
|
|
@@ -4,7 +4,7 @@ import type { Fetcher } from './fetcher';
|
|
|
4
4
|
import { Container, Range, Representation, RepresentationKind } from './types';
|
|
5
5
|
export interface Dependencies {
|
|
6
6
|
fetcher: Fetcher;
|
|
7
|
-
tuning: ITuningConfig
|
|
7
|
+
tuning: ITuningConfig;
|
|
8
8
|
getCurrentPosition: () => Milliseconds | undefined;
|
|
9
9
|
}
|
|
10
10
|
export interface Gap extends Range<Milliseconds> {
|
|
@@ -40,6 +40,7 @@ export declare class BufferManager {
|
|
|
40
40
|
private sourceBufferTaskQueue;
|
|
41
41
|
private gapDetectionIdleCallback;
|
|
42
42
|
private initLoadIdleCallback;
|
|
43
|
+
private failedDownloads;
|
|
43
44
|
constructor(kind: RepresentationKind, mediaSource: MediaSource, container: Container, representations: Representation[], { fetcher, tuning, getCurrentPosition }: Dependencies);
|
|
44
45
|
startWith: (param_0: string) => Promise<void | undefined>;
|
|
45
46
|
switchTo: (param_0: string) => Promise<void | undefined>;
|
|
@@ -50,6 +51,7 @@ export declare class BufferManager {
|
|
|
50
51
|
destroy(): void;
|
|
51
52
|
private selectForwardBufferSegments;
|
|
52
53
|
private loadSegments;
|
|
54
|
+
private onSegmentDownloadError;
|
|
53
55
|
/**
|
|
54
56
|
* Закидываем в буфер сегменты атомарнее чем сегмент целиком. Например, по боксам в мпеге и по блокам в вебме.
|
|
55
57
|
* Таким образом не ждём его полной загрузки и готовы играть его намного быстрее
|
|
@@ -5,6 +5,7 @@ declare class SourceBufferTaskQueue {
|
|
|
5
5
|
private buffer;
|
|
6
6
|
private queue;
|
|
7
7
|
private currentTask;
|
|
8
|
+
private destroyed;
|
|
8
9
|
constructor(buffer: SourceBuffer);
|
|
9
10
|
append(data: BufferSource, signal?: AbortSignal): Promise<boolean>;
|
|
10
11
|
remove(from: Milliseconds, to: Milliseconds, signal?: AbortSignal): Promise<boolean>;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { HttpConnectionType } from "../../player/types";
|
|
1
2
|
import { IObservable, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
2
3
|
import type { MediaPlayerClass } from 'dashjs';
|
|
3
4
|
export interface IObservableManifestLoader {
|
|
4
5
|
playbackDuration$: IObservable<Milliseconds>;
|
|
5
6
|
ping$: IObservable<Milliseconds>;
|
|
7
|
+
connectionReused$: IObservable<boolean>;
|
|
8
|
+
connectionType$: IObservable<HttpConnectionType>;
|
|
6
9
|
}
|
|
7
10
|
declare const _default: (player: MediaPlayerClass) => IObservableManifestLoader;
|
|
8
11
|
export default _default;
|
package/utils/tuningConfig.d.ts
CHANGED
|
@@ -34,6 +34,13 @@ export declare type ITuningConfig = {
|
|
|
34
34
|
segmentTimelineTolerance: Milliseconds;
|
|
35
35
|
useFetchPriorityHints: boolean;
|
|
36
36
|
};
|
|
37
|
+
downloadBackoff: {
|
|
38
|
+
bufferThreshold: Milliseconds;
|
|
39
|
+
start: Milliseconds;
|
|
40
|
+
factor: number;
|
|
41
|
+
max: Milliseconds;
|
|
42
|
+
random: number;
|
|
43
|
+
};
|
|
37
44
|
live: {
|
|
38
45
|
minBuffer: Milliseconds;
|
|
39
46
|
minBufferSegments: number;
|