@vkontakte/videoplayer-core 2.0.135-dev.f94adb28.0 → 2.0.136-dev.b3347749.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.js +37 -44
- package/es2015.esm.js +37 -44
- package/es2018.cjs.js +48 -55
- package/es2018.esm.js +40 -47
- package/es2024.cjs.js +47 -54
- package/es2024.esm.js +39 -46
- package/esnext.cjs.js +47 -54
- package/esnext.esm.js +39 -46
- package/evergreen.esm.js +44 -51
- package/package.json +2 -2
- package/types/providers/DashProvider/baseDashProvider.d.ts +2 -1
- package/types/providers/DashProvider/lib/LiveTextManager.d.ts +1 -1
- package/types/providers/DashProvider/lib/buffer.d.ts +1 -1
- package/types/providers/DashProvider/lib/fetcher.d.ts +1 -1
- package/types/providers/DashProvider/lib/player.d.ts +2 -1
- package/types/providers/DashProvider/lib/types.d.ts +2 -159
- package/types/providers/DashProvider/lib/utils.d.ts +1 -2
- package/types/providers/DashProviderNew/baseDashProvider.d.ts +2 -1
- package/types/providers/DashProviderNew/lib/LiveTextManager.d.ts +1 -1
- package/types/providers/DashProviderNew/lib/buffer.d.ts +1 -1
- package/types/providers/DashProviderNew/lib/fetcher.d.ts +1 -1
- package/types/providers/DashProviderNew/lib/player.d.ts +2 -1
- package/types/providers/DashProviderNew/lib/types.d.ts +2 -159
- package/types/providers/DashProviderNew/lib/utils.d.ts +1 -2
- package/types/providers/utils/error.d.ts +1 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/index.d.ts +1 -1
- package/types/providers/{DashProviderNew/lib → utils}/parsers/mpd.d.ts +1 -1
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/BoxModel.d.ts +1 -1
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/BoxParser.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/box.d.ts +1 -1
- package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +8 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/equi.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/ftyp.d.ts +2 -2
- package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +26 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/mdat.d.ts +2 -2
- package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +8 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/mfhd.d.ts +2 -2
- package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +8 -0
- package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +8 -0
- package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +8 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/mvhd.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/prhd.d.ts +2 -2
- package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +8 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/sidx.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/st3d.d.ts +2 -2
- package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +8 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/stsd.d.ts +2 -2
- package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +8 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/tfdt.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/tfhd.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/tkhd.d.ts +2 -2
- package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +8 -0
- package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +8 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/trun.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/unknown.d.ts +1 -1
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/boxes/uuid.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/fullBox.d.ts +2 -2
- package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/isobmff.d.ts +1 -1
- package/types/providers/utils/parsers/types.d.ts +159 -0
- package/types/providers/{DashProvider/lib → utils}/parsers/webm/webm.d.ts +1 -1
- package/types/utils/tuningConfig.d.ts +0 -4
- package/types/providers/DashProvider/lib/parsers/mpd.d.ts +0 -3
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/avc1.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/index.d.ts +0 -26
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/mdia.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/minf.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/moof.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/moov.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/proj.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/stbl.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/sv3d.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/traf.d.ts +0 -8
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/trak.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/ietf/index.d.ts +0 -13
- package/types/providers/DashProviderNew/lib/parsers/index.d.ts +0 -3
- package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxModel.d.ts +0 -20
- package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxParser.d.ts +0 -21
- package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxTypeEnum.d.ts +0 -30
- package/types/providers/DashProviderNew/lib/parsers/mpeg/box.d.ts +0 -74
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/avc1.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/equi.d.ts +0 -21
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/ftyp.d.ts +0 -17
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/index.d.ts +0 -26
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mdat.d.ts +0 -15
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mdia.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mfhd.d.ts +0 -11
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/minf.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/moof.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/moov.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mvhd.d.ts +0 -35
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/prhd.d.ts +0 -16
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/proj.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/sidx.d.ts +0 -48
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/st3d.d.ts +0 -23
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/stbl.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/stsd.d.ts +0 -11
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/sv3d.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tfdt.d.ts +0 -17
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tfhd.d.ts +0 -22
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tkhd.d.ts +0 -42
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/traf.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/trak.d.ts +0 -8
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/trun.d.ts +0 -31
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/unknown.d.ts +0 -6
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/uuid.d.ts +0 -11
- package/types/providers/DashProviderNew/lib/parsers/mpeg/fullBox.d.ts +0 -15
- package/types/providers/DashProviderNew/lib/parsers/mpeg/isobmff.d.ts +0 -12
- package/types/providers/DashProviderNew/lib/parsers/webm/ebml.d.ts +0 -76
- package/types/providers/DashProviderNew/lib/parsers/webm/webm.d.ts +0 -3
- /package/types/providers/{DashProvider/lib → utils}/parsers/ietf/index.d.ts +0 -0
- /package/types/providers/{DashProvider/lib → utils}/parsers/mpeg/BoxTypeEnum.d.ts +0 -0
- /package/types/providers/{DashProvider/lib → utils}/parsers/webm/ebml.d.ts +0 -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.136-dev.b3347749.0",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Videoplayer core library based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -54,6 +54,6 @@
|
|
|
54
54
|
"**/*.d.ts"
|
|
55
55
|
],
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@vkontakte/videoplayer-shared": "1.0.
|
|
57
|
+
"@vkontakte/videoplayer-shared": "1.0.64-dev.ca1fa54c.0"
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IAudioTrack, IDashURLSource, IHLSSource, IInternalTextTrack, IVideoTrack } from '../../player/types';
|
|
2
|
-
import {
|
|
2
|
+
import { IProviderSubscriptionInfo, ProviderState } from './lib/types';
|
|
3
|
+
import { CommonInit, Representation, Stream } from '../../providers/utils/parsers/types';
|
|
3
4
|
import { IProvider, IProviderParams } from '../../providers/types';
|
|
4
5
|
import { IObservableVideo } from '../../providers/utils/HTMLVideoElement/observable';
|
|
5
6
|
import { TrackHistory } from '../../utils/autoSelectTrack';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IValueSubject, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
2
2
|
import { Dependencies } from './buffer';
|
|
3
|
-
import { Manifest, Stream, TextRepresentation } from '
|
|
3
|
+
import { Manifest, Stream, TextRepresentation } from '../../../providers/utils/parsers/types';
|
|
4
4
|
export declare class LiveTextManager {
|
|
5
5
|
currentRepresentation$: IValueSubject<TextRepresentation | null>;
|
|
6
6
|
private readonly maxRepresentations;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ITuningConfig } from '../../../utils/tuningConfig';
|
|
2
2
|
import { IError, IRange, ISubject, IValueSubject, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
3
3
|
import type { Fetcher } from './fetcher';
|
|
4
|
-
import { CommonInit, Manifest, Representation, Stream, StreamKind } from '
|
|
4
|
+
import { CommonInit, Manifest, Representation, Stream, StreamKind } from '../../../providers/utils/parsers/types';
|
|
5
5
|
export interface Dependencies {
|
|
6
6
|
fetcher: Fetcher;
|
|
7
7
|
tuning: ITuningConfig;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpConnectionType } from '../../../player/types';
|
|
2
2
|
import type ThroughputEstimator from '../../../utils/ThroughputEstimator';
|
|
3
3
|
import { Byte, IValueSubject, Milliseconds, IRange, Subject, ITracer, IError } from '@vkontakte/videoplayer-shared';
|
|
4
|
-
import { CommonInit, GenericContainerParser, Segment, SegmentReference } from '
|
|
4
|
+
import { CommonInit, GenericContainerParser, Segment, SegmentReference } from '../../../providers/utils/parsers/types';
|
|
5
5
|
export declare enum RangeMethod {
|
|
6
6
|
HEADER = 0,
|
|
7
7
|
PARAM = 1
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpConnectionType } from '../../../player/types';
|
|
2
|
-
import {
|
|
2
|
+
import { LiveStreamStatus } from './types';
|
|
3
|
+
import { CommonInit, Manifest, Representation, StreamKind, TextRepresentation } from '../../../providers/utils/parsers/types';
|
|
3
4
|
import StateMachine from '../../../utils/StateMachine/StateMachine';
|
|
4
5
|
import type ThroughputEstimator from '../../../utils/ThroughputEstimator';
|
|
5
6
|
import { ITuningConfig } from '../../../utils/tuningConfig';
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IObservable, ISubject, IValueSubject } from '@vkontakte/videoplayer-shared';
|
|
2
2
|
import { IDesiredState, IProviderOutput, IProviderParams } from '../../../providers/types';
|
|
3
3
|
import { IObservableVideo } from '../../../providers/utils/HTMLVideoElement/observable';
|
|
4
|
-
import { IDashURLSource
|
|
5
|
-
export declare enum StreamKind {
|
|
6
|
-
VIDEO = "video",
|
|
7
|
-
AUDIO = "audio",
|
|
8
|
-
TEXT = "text"
|
|
9
|
-
}
|
|
4
|
+
import { IDashURLSource } from '../../../player/types';
|
|
10
5
|
export declare enum LiveStatus {
|
|
11
6
|
ActiveLowLatency = "active_low_latency",
|
|
12
7
|
LiveWithTargetOffset = "live_with_target_offset",
|
|
@@ -18,150 +13,6 @@ export declare enum LiveStreamStatus {
|
|
|
18
13
|
UnexpectedlyDown = "unexpectedly_down",// Стрим в сети, но трансляция оборвалась из-за тех. проблем
|
|
19
14
|
Unpublished = "unpublished"
|
|
20
15
|
}
|
|
21
|
-
export declare enum Profile {
|
|
22
|
-
WEBM_AS_IN_SPEC = "urn:mpeg:dash:profile:webm-on-demand:2012",// Такой указан в спеке
|
|
23
|
-
WEBM_AS_IN_FFMPEG = "urn:webm:dash:profile:webm-on-demand:2012"
|
|
24
|
-
}
|
|
25
|
-
export interface Representation {
|
|
26
|
-
id: string;
|
|
27
|
-
kind: StreamKind;
|
|
28
|
-
segmentReference: SegmentReference;
|
|
29
|
-
profiles: Array<Profile | string>;
|
|
30
|
-
duration?: Milliseconds;
|
|
31
|
-
bitrate: Kbps;
|
|
32
|
-
mime: string;
|
|
33
|
-
codecs: string;
|
|
34
|
-
width: number;
|
|
35
|
-
height: number;
|
|
36
|
-
fps?: number;
|
|
37
|
-
quality?: string;
|
|
38
|
-
streamId?: IVideoStream['id'];
|
|
39
|
-
}
|
|
40
|
-
export interface TextRepresentation extends Representation {
|
|
41
|
-
language: string;
|
|
42
|
-
label: string;
|
|
43
|
-
url: string;
|
|
44
|
-
isAuto: boolean;
|
|
45
|
-
}
|
|
46
|
-
export interface ServerLatencyTimestamps {
|
|
47
|
-
serverDataReceivedTimestamp?: Milliseconds;
|
|
48
|
-
serverDataPreparedTime?: Milliseconds;
|
|
49
|
-
}
|
|
50
|
-
export declare enum SegmentReferencingType {
|
|
51
|
-
BYTE_RANGE = "byteRange",
|
|
52
|
-
TEMPLATE = "template"
|
|
53
|
-
}
|
|
54
|
-
export type ByteRangeSegmentReference = {
|
|
55
|
-
type: SegmentReferencingType.BYTE_RANGE;
|
|
56
|
-
url: string;
|
|
57
|
-
initRange: IRange<Byte>;
|
|
58
|
-
indexRange?: IRange<Byte>;
|
|
59
|
-
};
|
|
60
|
-
export type TemplateSegmentReference = {
|
|
61
|
-
type: SegmentReferencingType.TEMPLATE;
|
|
62
|
-
baseUrl: string;
|
|
63
|
-
initUrl: string;
|
|
64
|
-
segmentTemplateUrl: string;
|
|
65
|
-
totalSegmentsDurationMs: Milliseconds;
|
|
66
|
-
segments: {
|
|
67
|
-
url: string;
|
|
68
|
-
time: IRange<Milliseconds>;
|
|
69
|
-
}[];
|
|
70
|
-
nextSegmentBeyondManifest: {
|
|
71
|
-
url: string;
|
|
72
|
-
time: IRange<Milliseconds>;
|
|
73
|
-
};
|
|
74
|
-
timescale: number;
|
|
75
|
-
};
|
|
76
|
-
export type SegmentReference = ByteRangeSegmentReference | TemplateSegmentReference;
|
|
77
|
-
export interface ByteRangeSegment {
|
|
78
|
-
status: SegmentStatus;
|
|
79
|
-
time: IRange<Milliseconds>;
|
|
80
|
-
byte: IRange<Byte>;
|
|
81
|
-
}
|
|
82
|
-
export interface TemplateSegment {
|
|
83
|
-
status: SegmentStatus;
|
|
84
|
-
time: IRange<Milliseconds>;
|
|
85
|
-
size?: Byte;
|
|
86
|
-
url: string;
|
|
87
|
-
}
|
|
88
|
-
export type Segment = ByteRangeSegment | TemplateSegment;
|
|
89
|
-
export declare enum SegmentStatus {
|
|
90
|
-
NONE = "none",
|
|
91
|
-
DOWNLOADING = "downloading",
|
|
92
|
-
DOWNLOADED = "downloaded",
|
|
93
|
-
PARTIALLY_FED = "partially_fed",
|
|
94
|
-
PARTIALLY_EJECTED = "partially_ejected",
|
|
95
|
-
FED = "fed"
|
|
96
|
-
}
|
|
97
|
-
export interface Stream {
|
|
98
|
-
id: string;
|
|
99
|
-
hdr?: boolean;
|
|
100
|
-
language?: string;
|
|
101
|
-
isDefault?: boolean;
|
|
102
|
-
label?: string;
|
|
103
|
-
codecs: string;
|
|
104
|
-
mime: string;
|
|
105
|
-
representations: Representation[];
|
|
106
|
-
}
|
|
107
|
-
export interface LiveMetadata {
|
|
108
|
-
availabilityStartTime: Milliseconds;
|
|
109
|
-
publishTime: Milliseconds;
|
|
110
|
-
latestSegmentPublishTime: Milliseconds;
|
|
111
|
-
streamIsAlive: boolean;
|
|
112
|
-
streamIsUnpublished: boolean;
|
|
113
|
-
}
|
|
114
|
-
export interface Manifest {
|
|
115
|
-
duration: Milliseconds | undefined;
|
|
116
|
-
streams: {
|
|
117
|
-
[key in StreamKind]: Stream[];
|
|
118
|
-
};
|
|
119
|
-
baseUrls: string[];
|
|
120
|
-
live?: LiveMetadata;
|
|
121
|
-
}
|
|
122
|
-
export declare enum ProjectionType {
|
|
123
|
-
RECTANGULAR = 0,
|
|
124
|
-
EQUIRECTANGULAR = 1,
|
|
125
|
-
CUBEMAP = 2,
|
|
126
|
-
MESH = 3
|
|
127
|
-
}
|
|
128
|
-
export interface BoxLike {
|
|
129
|
-
id: string;
|
|
130
|
-
size: Byte;
|
|
131
|
-
contents: DataView;
|
|
132
|
-
}
|
|
133
|
-
export interface GenericContainerParser<InitData> {
|
|
134
|
-
validateData(data: DataView): boolean;
|
|
135
|
-
getIndexRange(init: InitData): IRange<Byte> | undefined;
|
|
136
|
-
parseInit(data: DataView): InitData;
|
|
137
|
-
parseSegments(data: DataView, init: InitData, indexRange?: IRange<Byte>): Segment[];
|
|
138
|
-
parseFeedableSegmentChunk(data: DataView, isLive?: boolean): DataView | null;
|
|
139
|
-
}
|
|
140
|
-
export interface CommonInit {
|
|
141
|
-
is3dVideo: boolean;
|
|
142
|
-
stereoMode?: number;
|
|
143
|
-
projectionType?: ProjectionType;
|
|
144
|
-
projectionData?: {
|
|
145
|
-
pose: {
|
|
146
|
-
yaw: number;
|
|
147
|
-
pitch: number;
|
|
148
|
-
roll: number;
|
|
149
|
-
};
|
|
150
|
-
bounds: {
|
|
151
|
-
top: number;
|
|
152
|
-
bottom: number;
|
|
153
|
-
left: number;
|
|
154
|
-
right: number;
|
|
155
|
-
};
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
export interface WebmInit extends CommonInit {
|
|
159
|
-
segmentStart: Byte;
|
|
160
|
-
segmentEnd: Byte;
|
|
161
|
-
timeScale: number;
|
|
162
|
-
segmentDuration: number;
|
|
163
|
-
cuesSeekPosition?: Byte;
|
|
164
|
-
}
|
|
165
16
|
export interface IProviderSubscriptionInfo {
|
|
166
17
|
output: IProviderOutput;
|
|
167
18
|
desiredState: IDesiredState;
|
|
@@ -176,11 +27,3 @@ export declare enum ProviderState {
|
|
|
176
27
|
PAUSED = "paused"
|
|
177
28
|
}
|
|
178
29
|
export type IParams = IProviderParams<IDashURLSource>;
|
|
179
|
-
export type MpegInit = CommonInit;
|
|
180
|
-
export type WebmParser = GenericContainerParser<WebmInit>;
|
|
181
|
-
export type MpegParser = GenericContainerParser<MpegInit> & {
|
|
182
|
-
getChunkEndTime(data: DataView, timescale: number): Milliseconds;
|
|
183
|
-
getServerLatencyTimestamps(view: DataView): ServerLatencyTimestamps;
|
|
184
|
-
getTimescaleFromIndex(view: DataView): number | undefined;
|
|
185
|
-
};
|
|
186
|
-
export type ContainerParser = WebmParser | MpegParser;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Representation, Segment, SegmentReference, Stream, TemplateSegment, TemplateSegmentReference, TextRepresentation } from '../../../providers/
|
|
1
|
+
import { Representation, Segment, SegmentReference, Stream, TemplateSegment, TemplateSegmentReference, TextRepresentation } from '../../../providers/utils/parsers/types';
|
|
2
2
|
import { IAudioStream, IAudioTrack, IInternalTextTrack, IVideoStream, IVideoTrack } from '../../../player/types';
|
|
3
3
|
export declare const representationToVideoTrack: ({ id, width, height, bitrate, fps, quality: qualityString, streamId }: Representation) => IVideoTrack | undefined;
|
|
4
4
|
export declare const representationToAudioTrack: ({ id, bitrate }: Representation) => IAudioTrack;
|
|
@@ -11,5 +11,4 @@ export declare const streamToIAudioStream: ({ id, language, label, codecs, isDef
|
|
|
11
11
|
export declare const streamToIVideoStream: ({ id, language, label, hdr, codecs }: Stream) => IVideoStream;
|
|
12
12
|
export declare const isTemplateSegment: (segment: Segment) => segment is TemplateSegment;
|
|
13
13
|
export declare const isTemplateSegmentReference: (segmentReference: SegmentReference) => segmentReference is TemplateSegmentReference;
|
|
14
|
-
export declare const isAbortError: (e: Error | unknown) => boolean;
|
|
15
14
|
export declare const isTextRepresentation: (representation: Representation | TextRepresentation) => representation is TextRepresentation;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IAudioTrack, IDashURLSource, IHLSSource, IInternalTextTrack, IVideoTrack } from '../../player/types';
|
|
2
|
-
import {
|
|
2
|
+
import { IProviderSubscriptionInfo, ProviderState } from './lib/types';
|
|
3
|
+
import { CommonInit, Representation, Stream } from '../../providers/utils/parsers/types';
|
|
3
4
|
import { IProvider, IProviderParams } from '../../providers/types';
|
|
4
5
|
import { IObservableVideo } from '../../providers/utils/HTMLVideoElement/observable';
|
|
5
6
|
import { TrackHistory } from '../../utils/autoSelectTrack';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IValueSubject, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
2
2
|
import { Dependencies } from './buffer';
|
|
3
|
-
import { Manifest, Stream, TextRepresentation } from '
|
|
3
|
+
import { Manifest, Stream, TextRepresentation } from '../../../providers/utils/parsers/types';
|
|
4
4
|
export declare class LiveTextManager {
|
|
5
5
|
currentRepresentation$: IValueSubject<TextRepresentation | null>;
|
|
6
6
|
private readonly maxRepresentations;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ITuningConfig } from '../../../utils/tuningConfig';
|
|
2
2
|
import { IError, IRange, ISubject, IValueSubject, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
3
3
|
import type { Fetcher } from './fetcher';
|
|
4
|
-
import { CommonInit, Manifest, Representation, Stream, StreamKind } from '
|
|
4
|
+
import { CommonInit, Manifest, Representation, Stream, StreamKind } from '../../../providers/utils/parsers/types';
|
|
5
5
|
export interface Dependencies {
|
|
6
6
|
fetcher: Fetcher;
|
|
7
7
|
tuning: ITuningConfig;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpConnectionType } from '../../../player/types';
|
|
2
2
|
import type ThroughputEstimator from '../../../utils/ThroughputEstimator';
|
|
3
3
|
import { Byte, IValueSubject, Milliseconds, IRange, Subject, ITracer, IError } from '@vkontakte/videoplayer-shared';
|
|
4
|
-
import { CommonInit, GenericContainerParser, Segment, SegmentReference } from '
|
|
4
|
+
import { CommonInit, GenericContainerParser, Segment, SegmentReference } from '../../../providers/utils/parsers/types';
|
|
5
5
|
export declare enum RangeMethod {
|
|
6
6
|
HEADER = 0,
|
|
7
7
|
PARAM = 1
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpConnectionType } from '../../../player/types';
|
|
2
|
-
import {
|
|
2
|
+
import { LiveStreamStatus } from './types';
|
|
3
|
+
import { CommonInit, Manifest, Representation, StreamKind, TextRepresentation } from '../../../providers/utils/parsers/types';
|
|
3
4
|
import StateMachine from '../../../utils/StateMachine/StateMachine';
|
|
4
5
|
import type ThroughputEstimator from '../../../utils/ThroughputEstimator';
|
|
5
6
|
import { ITuningConfig } from '../../../utils/tuningConfig';
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IObservable, ISubject, IValueSubject } from '@vkontakte/videoplayer-shared';
|
|
2
2
|
import { IDesiredState, IProviderOutput, IProviderParams } from '../../../providers/types';
|
|
3
3
|
import { IObservableVideo } from '../../../providers/utils/HTMLVideoElement/observable';
|
|
4
|
-
import { IDashURLSource
|
|
5
|
-
export declare enum StreamKind {
|
|
6
|
-
VIDEO = "video",
|
|
7
|
-
AUDIO = "audio",
|
|
8
|
-
TEXT = "text"
|
|
9
|
-
}
|
|
4
|
+
import { IDashURLSource } from '../../../player/types';
|
|
10
5
|
export declare enum LiveStatus {
|
|
11
6
|
ActiveLowLatency = "active_low_latency",
|
|
12
7
|
LiveWithTargetOffset = "live_with_target_offset",
|
|
@@ -18,150 +13,6 @@ export declare enum LiveStreamStatus {
|
|
|
18
13
|
UnexpectedlyDown = "unexpectedly_down",// Стрим в сети, но трансляция оборвалась из-за тех. проблем
|
|
19
14
|
Unpublished = "unpublished"
|
|
20
15
|
}
|
|
21
|
-
export declare enum Profile {
|
|
22
|
-
WEBM_AS_IN_SPEC = "urn:mpeg:dash:profile:webm-on-demand:2012",// Такой указан в спеке
|
|
23
|
-
WEBM_AS_IN_FFMPEG = "urn:webm:dash:profile:webm-on-demand:2012"
|
|
24
|
-
}
|
|
25
|
-
export interface Representation {
|
|
26
|
-
id: string;
|
|
27
|
-
kind: StreamKind;
|
|
28
|
-
segmentReference: SegmentReference;
|
|
29
|
-
profiles: Array<Profile | string>;
|
|
30
|
-
duration?: Milliseconds;
|
|
31
|
-
bitrate: Kbps;
|
|
32
|
-
mime: string;
|
|
33
|
-
codecs: string;
|
|
34
|
-
width: number;
|
|
35
|
-
height: number;
|
|
36
|
-
fps?: number;
|
|
37
|
-
quality?: string;
|
|
38
|
-
streamId?: IVideoStream['id'];
|
|
39
|
-
}
|
|
40
|
-
export interface TextRepresentation extends Representation {
|
|
41
|
-
language: string;
|
|
42
|
-
label: string;
|
|
43
|
-
url: string;
|
|
44
|
-
isAuto: boolean;
|
|
45
|
-
}
|
|
46
|
-
export interface ServerLatencyTimestamps {
|
|
47
|
-
serverDataReceivedTimestamp?: Milliseconds;
|
|
48
|
-
serverDataPreparedTime?: Milliseconds;
|
|
49
|
-
}
|
|
50
|
-
export declare enum SegmentReferencingType {
|
|
51
|
-
BYTE_RANGE = "byteRange",
|
|
52
|
-
TEMPLATE = "template"
|
|
53
|
-
}
|
|
54
|
-
export type ByteRangeSegmentReference = {
|
|
55
|
-
type: SegmentReferencingType.BYTE_RANGE;
|
|
56
|
-
url: string;
|
|
57
|
-
initRange: IRange<Byte>;
|
|
58
|
-
indexRange?: IRange<Byte>;
|
|
59
|
-
};
|
|
60
|
-
export type TemplateSegmentReference = {
|
|
61
|
-
type: SegmentReferencingType.TEMPLATE;
|
|
62
|
-
baseUrl: string;
|
|
63
|
-
initUrl: string;
|
|
64
|
-
segmentTemplateUrl: string;
|
|
65
|
-
totalSegmentsDurationMs: Milliseconds;
|
|
66
|
-
segments: {
|
|
67
|
-
url: string;
|
|
68
|
-
time: IRange<Milliseconds>;
|
|
69
|
-
}[];
|
|
70
|
-
nextSegmentBeyondManifest: {
|
|
71
|
-
url: string;
|
|
72
|
-
time: IRange<Milliseconds>;
|
|
73
|
-
};
|
|
74
|
-
timescale: number;
|
|
75
|
-
};
|
|
76
|
-
export type SegmentReference = ByteRangeSegmentReference | TemplateSegmentReference;
|
|
77
|
-
export interface ByteRangeSegment {
|
|
78
|
-
status: SegmentStatus;
|
|
79
|
-
time: IRange<Milliseconds>;
|
|
80
|
-
byte: IRange<Byte>;
|
|
81
|
-
}
|
|
82
|
-
export interface TemplateSegment {
|
|
83
|
-
status: SegmentStatus;
|
|
84
|
-
time: IRange<Milliseconds>;
|
|
85
|
-
size?: Byte;
|
|
86
|
-
url: string;
|
|
87
|
-
}
|
|
88
|
-
export type Segment = ByteRangeSegment | TemplateSegment;
|
|
89
|
-
export declare enum SegmentStatus {
|
|
90
|
-
NONE = "none",
|
|
91
|
-
DOWNLOADING = "downloading",
|
|
92
|
-
DOWNLOADED = "downloaded",
|
|
93
|
-
PARTIALLY_FED = "partially_fed",
|
|
94
|
-
PARTIALLY_EJECTED = "partially_ejected",
|
|
95
|
-
FED = "fed"
|
|
96
|
-
}
|
|
97
|
-
export interface Stream {
|
|
98
|
-
id: string;
|
|
99
|
-
hdr?: boolean;
|
|
100
|
-
language?: string;
|
|
101
|
-
isDefault?: boolean;
|
|
102
|
-
label?: string;
|
|
103
|
-
codecs: string;
|
|
104
|
-
mime: string;
|
|
105
|
-
representations: Representation[];
|
|
106
|
-
}
|
|
107
|
-
export interface LiveMetadata {
|
|
108
|
-
availabilityStartTime: Milliseconds;
|
|
109
|
-
publishTime: Milliseconds;
|
|
110
|
-
latestSegmentPublishTime: Milliseconds;
|
|
111
|
-
streamIsAlive: boolean;
|
|
112
|
-
streamIsUnpublished: boolean;
|
|
113
|
-
}
|
|
114
|
-
export interface Manifest {
|
|
115
|
-
duration: Milliseconds | undefined;
|
|
116
|
-
streams: {
|
|
117
|
-
[key in StreamKind]: Stream[];
|
|
118
|
-
};
|
|
119
|
-
baseUrls: string[];
|
|
120
|
-
live?: LiveMetadata;
|
|
121
|
-
}
|
|
122
|
-
export declare enum ProjectionType {
|
|
123
|
-
RECTANGULAR = 0,
|
|
124
|
-
EQUIRECTANGULAR = 1,
|
|
125
|
-
CUBEMAP = 2,
|
|
126
|
-
MESH = 3
|
|
127
|
-
}
|
|
128
|
-
export interface BoxLike {
|
|
129
|
-
id: string;
|
|
130
|
-
size: Byte;
|
|
131
|
-
contents: DataView;
|
|
132
|
-
}
|
|
133
|
-
export interface GenericContainerParser<InitData> {
|
|
134
|
-
validateData(data: DataView): boolean;
|
|
135
|
-
getIndexRange(init: InitData): IRange<Byte> | undefined;
|
|
136
|
-
parseInit(data: DataView): InitData;
|
|
137
|
-
parseSegments(data: DataView, init: InitData, indexRange?: IRange<Byte>): Segment[];
|
|
138
|
-
parseFeedableSegmentChunk(data: DataView, isLive?: boolean): DataView | null;
|
|
139
|
-
}
|
|
140
|
-
export interface CommonInit {
|
|
141
|
-
is3dVideo: boolean;
|
|
142
|
-
stereoMode?: number;
|
|
143
|
-
projectionType?: ProjectionType;
|
|
144
|
-
projectionData?: {
|
|
145
|
-
pose: {
|
|
146
|
-
yaw: number;
|
|
147
|
-
pitch: number;
|
|
148
|
-
roll: number;
|
|
149
|
-
};
|
|
150
|
-
bounds: {
|
|
151
|
-
top: number;
|
|
152
|
-
bottom: number;
|
|
153
|
-
left: number;
|
|
154
|
-
right: number;
|
|
155
|
-
};
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
export interface WebmInit extends CommonInit {
|
|
159
|
-
segmentStart: Byte;
|
|
160
|
-
segmentEnd: Byte;
|
|
161
|
-
timeScale: number;
|
|
162
|
-
segmentDuration: number;
|
|
163
|
-
cuesSeekPosition?: Byte;
|
|
164
|
-
}
|
|
165
16
|
export interface IProviderSubscriptionInfo {
|
|
166
17
|
output: IProviderOutput;
|
|
167
18
|
desiredState: IDesiredState;
|
|
@@ -176,11 +27,3 @@ export declare enum ProviderState {
|
|
|
176
27
|
PAUSED = "paused"
|
|
177
28
|
}
|
|
178
29
|
export type IParams = IProviderParams<IDashURLSource>;
|
|
179
|
-
export type MpegInit = CommonInit;
|
|
180
|
-
export type WebmParser = GenericContainerParser<WebmInit>;
|
|
181
|
-
export type MpegParser = GenericContainerParser<MpegInit> & {
|
|
182
|
-
getChunkEndTime(data: DataView, timescale: number): Milliseconds;
|
|
183
|
-
getServerLatencyTimestamps(view: DataView): ServerLatencyTimestamps;
|
|
184
|
-
getTimescaleFromIndex(view: DataView): number | undefined;
|
|
185
|
-
};
|
|
186
|
-
export type ContainerParser = WebmParser | MpegParser;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Representation, Segment, SegmentReference, Stream, TemplateSegment, TemplateSegmentReference, TextRepresentation } from '../../../providers/
|
|
1
|
+
import { Representation, Segment, SegmentReference, Stream, TemplateSegment, TemplateSegmentReference, TextRepresentation } from '../../../providers/utils/parsers/types';
|
|
2
2
|
import { IAudioStream, IAudioTrack, IInternalTextTrack, IVideoStream, IVideoTrack } from '../../../player/types';
|
|
3
3
|
import { IRange, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
4
4
|
export declare const representationToVideoTrack: ({ id, width, height, bitrate, fps, quality: qualityString, streamId }: Representation) => IVideoTrack | undefined;
|
|
@@ -12,7 +12,6 @@ export declare const streamToIAudioStream: ({ id, language, label, codecs, isDef
|
|
|
12
12
|
export declare const streamToIVideoStream: ({ id, language, label, hdr, codecs }: Stream) => IVideoStream;
|
|
13
13
|
export declare const isTemplateSegment: (segment: Segment) => segment is TemplateSegment;
|
|
14
14
|
export declare const isTemplateSegmentReference: (segmentReference: SegmentReference) => segmentReference is TemplateSegmentReference;
|
|
15
|
-
export declare const isAbortError: (e: Error | unknown) => boolean;
|
|
16
15
|
export declare const isTextRepresentation: (representation: Representation | TextRepresentation) => representation is TextRepresentation;
|
|
17
16
|
/**
|
|
18
17
|
* @mutates intervals
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isAbortError: (e: Error | unknown) => boolean;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ContainerParser, MpegParser } from '
|
|
1
|
+
import { ContainerParser, MpegParser } from './types';
|
|
2
2
|
export declare const getContainerParser: (mime: string) => ContainerParser;
|
|
3
3
|
export declare const isMp4Parser: (parser: ContainerParser) => parser is MpegParser;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Manifest } from '
|
|
1
|
+
import { Manifest } from './types';
|
|
2
2
|
export declare const replaceSegmentTemplate: (template: string, data: Partial<Record<"representationId" | "segmentNumber" | "bandwidth" | "segmentTime", string>>) => string;
|
|
3
3
|
export declare const parse: (text: string, manifestUrl: string) => Manifest;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type Box } from '
|
|
2
|
-
import { BoxTypeEnum } from '
|
|
1
|
+
import { type Box } from './box';
|
|
2
|
+
import { BoxTypeEnum } from './BoxTypeEnum';
|
|
3
3
|
export declare const BOX_TYPE_MAP: Record<BoxTypeEnum, typeof Box>;
|
|
4
4
|
export interface BoxParserOptions {
|
|
5
5
|
offset: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FullBox } from '
|
|
2
|
-
import { type BoxParser } from '
|
|
1
|
+
import { FullBox } from '../fullBox';
|
|
2
|
+
import { type BoxParser } from '../BoxParser';
|
|
3
3
|
/**
|
|
4
4
|
* aligned(8) class ProjectionDataBox(unsigned int(32) proj_type, unsigned int(8)version, unsigned int(24) flags)
|
|
5
5
|
* extends FullBox(proj_type, version, flags) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Box } from '
|
|
2
|
-
import { type BoxParser } from '
|
|
1
|
+
import { Box } from '../box';
|
|
2
|
+
import { type BoxParser } from '../BoxParser';
|
|
3
3
|
/**
|
|
4
4
|
* File Type Box description
|
|
5
5
|
*
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { Box } from '../box';
|
|
2
|
+
export { UnknownBox } from '../boxes/unknown';
|
|
3
|
+
export { UuidBox } from '../boxes/uuid';
|
|
4
|
+
export { FtypBox } from '../boxes/ftyp';
|
|
5
|
+
export { MoovBox } from '../boxes/moov';
|
|
6
|
+
export { MvhdBox } from '../boxes/mvhd';
|
|
7
|
+
export { MoofBox } from '../boxes/moof';
|
|
8
|
+
export { MdatBox } from '../boxes/mdat';
|
|
9
|
+
export { SidxBox, SidxBoxSegment } from '../boxes/sidx';
|
|
10
|
+
export { TrakBox } from '../boxes/trak';
|
|
11
|
+
export { Sv3dBox } from '../boxes/sv3d';
|
|
12
|
+
export { St3dBox } from '../boxes/st3d';
|
|
13
|
+
export { PrhdBox } from '../boxes/prhd';
|
|
14
|
+
export { EquiBox } from '../boxes/equi';
|
|
15
|
+
export { MdiaBox } from '../boxes/mdia';
|
|
16
|
+
export { TkhdBox } from '../boxes/tkhd';
|
|
17
|
+
export { MinfBox } from '../boxes/minf';
|
|
18
|
+
export { ProjBox } from '../boxes/proj';
|
|
19
|
+
export { MfhdBox } from '../boxes/mfhd';
|
|
20
|
+
export { TrafBox } from '../boxes/traf';
|
|
21
|
+
export { TfhdBox } from '../boxes/tfhd';
|
|
22
|
+
export { TfdtBox } from '../boxes/tfdt';
|
|
23
|
+
export { TrunBox } from '../boxes/trun';
|
|
24
|
+
export { StblBox } from '../boxes/stbl';
|
|
25
|
+
export { StsdBox } from '../boxes/stsd';
|
|
26
|
+
export { Avc1Box } from '../boxes/avc1';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Box } from '
|
|
2
|
-
import { type BoxParser } from '
|
|
1
|
+
import { Box } from '../box';
|
|
2
|
+
import { type BoxParser } from '../BoxParser';
|
|
3
3
|
/**
|
|
4
4
|
* Media Data Box
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FullBox } from '
|
|
2
|
-
import { type BoxParser } from '
|
|
1
|
+
import { FullBox } from '../fullBox';
|
|
2
|
+
import { type BoxParser } from '../BoxParser';
|
|
3
3
|
/**
|
|
4
4
|
* aligned(8) class MovieFragmentHeaderBox extends FullBox(‘mfhd’, 0, 0) {
|
|
5
5
|
* unsigned int(32) sequence_number;
|