@vkontakte/videoplayer-core 2.0.131-dev.abb2b2b1.0 → 2.0.131-dev.c93c80a1.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 +91 -30
- package/es2015.esm.js +93 -32
- package/es2018.cjs.js +91 -30
- package/es2018.esm.js +93 -32
- package/es2024.cjs.js +98 -37
- package/es2024.esm.js +95 -34
- package/esnext.cjs.js +98 -37
- package/esnext.esm.js +95 -34
- package/evergreen.esm.js +92 -31
- package/package.json +2 -2
- package/types/providers/DashProvider/baseDashProvider.d.ts +1 -0
- package/types/providers/DashProvider/lib/buffer.d.ts +3 -0
- package/types/providers/DashProvider/lib/fetcher.d.ts +2 -1
- package/types/providers/DashProvider/lib/player.d.ts +1 -0
- package/types/providers/DashProvider/lib/sourceBufferBufferedDiff.d.ts +19 -0
- package/types/providers/DashProvider/lib/utils.d.ts +11 -0
- package/types/providers/DashProviderNew/baseDashProvider.d.ts +57 -0
- package/types/providers/DashProviderNew/consts.d.ts +3 -0
- package/types/providers/DashProviderNew/index.d.ts +2 -0
- package/types/providers/DashProviderNew/lib/ElementSizeManager.d.ts +19 -0
- package/types/providers/DashProviderNew/lib/LiveTextManager.d.ts +23 -0
- package/types/providers/DashProviderNew/lib/buffer.d.ts +117 -0
- package/types/providers/DashProviderNew/lib/fetcher.d.ts +59 -0
- package/types/providers/DashProviderNew/lib/parsers/ietf/index.d.ts +13 -0
- package/types/providers/DashProviderNew/lib/parsers/index.d.ts +3 -0
- package/types/providers/DashProviderNew/lib/parsers/mpd.d.ts +3 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxModel.d.ts +20 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxParser.d.ts +21 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxTypeEnum.d.ts +30 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/box.d.ts +74 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/avc1.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/equi.d.ts +21 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/ftyp.d.ts +17 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/index.d.ts +26 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mdat.d.ts +15 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mdia.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mfhd.d.ts +11 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/minf.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/moof.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/moov.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mvhd.d.ts +35 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/prhd.d.ts +16 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/proj.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/sidx.d.ts +48 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/st3d.d.ts +23 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/stbl.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/stsd.d.ts +11 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/sv3d.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tfdt.d.ts +17 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tfhd.d.ts +22 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tkhd.d.ts +42 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/traf.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/trak.d.ts +8 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/trun.d.ts +31 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/unknown.d.ts +6 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/uuid.d.ts +11 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/fullBox.d.ts +15 -0
- package/types/providers/DashProviderNew/lib/parsers/mpeg/isobmff.d.ts +12 -0
- package/types/providers/DashProviderNew/lib/parsers/webm/ebml.d.ts +76 -0
- package/types/providers/DashProviderNew/lib/parsers/webm/webm.d.ts +3 -0
- package/types/providers/DashProviderNew/lib/player.d.ts +92 -0
- package/types/providers/DashProviderNew/lib/sourceBufferTaskQueue.d.ts +19 -0
- package/types/providers/DashProviderNew/lib/types.d.ts +186 -0
- package/types/providers/DashProviderNew/lib/utils.d.ts +21 -0
- package/types/providers/DashProviderNew/newDashCmafLiveProvider.d.ts +8 -0
- package/types/providers/DashProviderNew/newDashProvider.d.ts +6 -0
- package/types/utils/autoSelectTrack.d.ts +6 -3
- package/types/utils/qualityLimits.d.ts +3 -18
- package/types/utils/tuningConfig.d.ts +3 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { Byte, Kbps, Milliseconds, IRange, IObservable, ISubject, IValueSubject } from '@vkontakte/videoplayer-shared';
|
|
2
|
+
import { IDesiredState, IProviderOutput, IProviderParams } from '../../../providers/types';
|
|
3
|
+
import { IObservableVideo } from '../../../providers/utils/HTMLVideoElement/observable';
|
|
4
|
+
import { IDashURLSource, IVideoStream } from '../../../player/types';
|
|
5
|
+
export declare enum StreamKind {
|
|
6
|
+
VIDEO = "video",
|
|
7
|
+
AUDIO = "audio",
|
|
8
|
+
TEXT = "text"
|
|
9
|
+
}
|
|
10
|
+
export declare enum LiveStatus {
|
|
11
|
+
ActiveLowLatency = "active_low_latency",
|
|
12
|
+
LiveWithTargetOffset = "live_with_target_offset",
|
|
13
|
+
LiveForwardBuffering = "live_forward_buffering",
|
|
14
|
+
None = "none"
|
|
15
|
+
}
|
|
16
|
+
export declare enum LiveStreamStatus {
|
|
17
|
+
Active = "active",
|
|
18
|
+
UnexpectedlyDown = "unexpectedly_down",// Стрим в сети, но трансляция оборвалась из-за тех. проблем
|
|
19
|
+
Unpublished = "unpublished"
|
|
20
|
+
}
|
|
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
|
+
export interface IProviderSubscriptionInfo {
|
|
166
|
+
output: IProviderOutput;
|
|
167
|
+
desiredState: IDesiredState;
|
|
168
|
+
observableVideo: IObservableVideo;
|
|
169
|
+
genericErrorListener: (error: Error | unknown) => void;
|
|
170
|
+
connect: <Value>(from: IObservable<Value>, to: ISubject<Value> | IValueSubject<Value> | ((v: Value) => void)) => void;
|
|
171
|
+
}
|
|
172
|
+
export declare enum ProviderState {
|
|
173
|
+
STOPPED = "stopped",
|
|
174
|
+
READY = "ready",
|
|
175
|
+
PLAYING = "playing",
|
|
176
|
+
PAUSED = "paused"
|
|
177
|
+
}
|
|
178
|
+
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;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Representation, Segment, SegmentReference, Stream, TemplateSegment, TemplateSegmentReference, TextRepresentation } from '../../../providers/DashProviderNew/lib/types';
|
|
2
|
+
import { IAudioStream, IAudioTrack, IInternalTextTrack, IVideoStream, IVideoTrack } from '../../../player/types';
|
|
3
|
+
import { IRange, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
4
|
+
export declare const representationToVideoTrack: ({ id, width, height, bitrate, fps, quality: qualityString, streamId }: Representation) => IVideoTrack | undefined;
|
|
5
|
+
export declare const representationToAudioTrack: ({ id, bitrate }: Representation) => IAudioTrack;
|
|
6
|
+
export declare const representationToTextTrack: ({ language, label }: Stream, { id, url, isAuto }: Representation & {
|
|
7
|
+
url: string;
|
|
8
|
+
isAuto: boolean;
|
|
9
|
+
}) => IInternalTextTrack;
|
|
10
|
+
export declare const textRepresentationToTextTrack: ({ language, label, id, url, isAuto }: TextRepresentation) => IInternalTextTrack;
|
|
11
|
+
export declare const streamToIAudioStream: ({ id, language, label, codecs, isDefault }: Stream) => IAudioStream;
|
|
12
|
+
export declare const streamToIVideoStream: ({ id, language, label, hdr, codecs }: Stream) => IVideoStream;
|
|
13
|
+
export declare const isTemplateSegment: (segment: Segment) => segment is TemplateSegment;
|
|
14
|
+
export declare const isTemplateSegmentReference: (segmentReference: SegmentReference) => segmentReference is TemplateSegmentReference;
|
|
15
|
+
export declare const isAbortError: (e: Error | unknown) => boolean;
|
|
16
|
+
export declare const isTextRepresentation: (representation: Representation | TextRepresentation) => representation is TextRepresentation;
|
|
17
|
+
/**
|
|
18
|
+
* @mutates intervals
|
|
19
|
+
*/
|
|
20
|
+
export declare const mergeIntervals: (intervals: IRange<Milliseconds>[]) => IRange<Milliseconds>[];
|
|
21
|
+
export declare const findInIterator: <T>(iterable: MapIterator<T> | SetIterator<T>, matchFn: (arg: T) => boolean) => T | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
2
|
+
import { IParams } from './lib/types';
|
|
3
|
+
import BaseDashProvider from './baseDashProvider';
|
|
4
|
+
export default class NewDashCmafLiveProvider extends BaseDashProvider {
|
|
5
|
+
constructor(params: IParams);
|
|
6
|
+
protected subscribe(): void;
|
|
7
|
+
protected seek(position: Milliseconds): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
2
|
+
import BaseDashProvider from './baseDashProvider';
|
|
3
|
+
export default class NewDashProvider extends BaseDashProvider {
|
|
4
|
+
protected subscribe(): void;
|
|
5
|
+
protected seek(position: Milliseconds, forcePrecise: boolean): void;
|
|
6
|
+
}
|
|
@@ -26,7 +26,10 @@ export declare class TrackHistory<T extends IBaseTrack> {
|
|
|
26
26
|
clear(): void;
|
|
27
27
|
}
|
|
28
28
|
export declare const defaultEmptyArrayErrorMessage = "Assertion \"ABR Tracks is empty array\" failed";
|
|
29
|
-
export declare const
|
|
30
|
-
export declare const
|
|
31
|
-
export declare const
|
|
29
|
+
export declare const getMinPossibleAudioForVideoOld: (videoTrack: IVideoTrack, videoTracks: IVideoTrack[], audioTracks: IAudioTrack[], minVideoAudioRatio: number) => IAudioTrack | undefined;
|
|
30
|
+
export declare const getMinPossibleAudioForVideoNew: (videoTrack: IVideoTrack, videoTracks: IVideoTrack[], audioTracks: IAudioTrack[], minVideoAudioRatio: number) => IAudioTrack | undefined;
|
|
31
|
+
export declare const autoSelectVideoTrackNew: (videoTracks: IVideoTrack[], { container, estimatedThroughput, tuning, limits, reserve, forwardBufferHealth, playbackRate, current, history, visible, droppedVideoMaxQualityLimit, stallsVideoMaxQualityLimit, stallsPredictedThroughput, abrLogger, panelSize, }: IConstraints<IVideoTrack>) => IVideoTrack;
|
|
32
|
+
export declare const autoSelectVideoTrackOld: (videoTracks: IVideoTrack[], { container, estimatedThroughput, tuning, limits, reserve, forwardBufferHealth, playbackRate, current, history, visible, droppedVideoMaxQualityLimit, stallsVideoMaxQualityLimit, stallsPredictedThroughput, abrLogger, panelSize, }: IConstraints<IVideoTrack>) => IVideoTrack;
|
|
33
|
+
export declare const autoSelectAudioTrackForVideoOld: (selectedVideoTrack: IVideoTrack, videoTracks: IVideoTrack[], audioTracks: IAudioTrack[], { estimatedThroughput, tuning, playbackRate, forwardBufferHealth, history, abrLogger, stallsPredictedThroughput, }: IConstraints<IAudioTrack>) => IAudioTrack | undefined;
|
|
34
|
+
export declare const autoSelectAudioTrackForVideoNew: (selectedVideoTrack: IVideoTrack, videoTracks: IVideoTrack[], audioTracks: IAudioTrack[], { estimatedThroughput, tuning, playbackRate, forwardBufferHealth, history, abrLogger, stallsPredictedThroughput, }: IConstraints<IAudioTrack>) => IAudioTrack | undefined;
|
|
32
35
|
export {};
|
|
@@ -1,22 +1,7 @@
|
|
|
1
1
|
import { IVideoTrack, PredefinedQualityLimits } from '../player/types';
|
|
2
2
|
import { ExactVideoQuality, Nullable, QualityLimits } from '@vkontakte/videoplayer-shared';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
highQualityLimit: ExactVideoQuality;
|
|
6
|
-
trafficSavingLimit: ExactVideoQuality;
|
|
7
|
-
};
|
|
8
|
-
export declare function getQualityLimitsPredefinedType({ limits, highQualityLimit, trafficSavingLimit, }: Params): PredefinedQualityLimits;
|
|
9
|
-
type HighQualityEnabled = {
|
|
10
|
-
limits?: QualityLimits;
|
|
11
|
-
highQualityLimit: ExactVideoQuality;
|
|
12
|
-
trafficSavingLimit: ExactVideoQuality;
|
|
13
|
-
};
|
|
14
|
-
export declare function isHighQualityEnabled({ limits, highQualityLimit, trafficSavingLimit }: HighQualityEnabled): boolean;
|
|
15
|
-
type LimitsValidParams = {
|
|
16
|
-
limits?: QualityLimits;
|
|
17
|
-
highestAvailableQuality: Nullable<ExactVideoQuality>;
|
|
18
|
-
lowestAvailableQuality: Nullable<ExactVideoQuality>;
|
|
19
|
-
};
|
|
3
|
+
export declare function getQualityLimitsPredefinedType(limits: QualityLimits, highQualityLimit: ExactVideoQuality, trafficSavingLimit: ExactVideoQuality): PredefinedQualityLimits;
|
|
4
|
+
export declare function isHighQualityEnabled(limits: Nullable<QualityLimits>, highQualityLimit: ExactVideoQuality, trafficSavingLimit: ExactVideoQuality): boolean;
|
|
20
5
|
type LimitsAsHeightValidParams = {
|
|
21
6
|
limits?: {
|
|
22
7
|
min?: number;
|
|
@@ -25,7 +10,7 @@ type LimitsAsHeightValidParams = {
|
|
|
25
10
|
highestAvailableHeight: Nullable<number>;
|
|
26
11
|
lowestAvailableHeight: Nullable<number>;
|
|
27
12
|
};
|
|
28
|
-
export declare function areLimitsInvalid(
|
|
13
|
+
export declare function areLimitsInvalid(limits: Nullable<QualityLimits>, highestAvailableQuality: Nullable<ExactVideoQuality>, lowestAvailableQuality: Nullable<ExactVideoQuality>): boolean | (null | undefined);
|
|
29
14
|
/**
|
|
30
15
|
* Проверяем лимиты качества, когда указана высота качества.
|
|
31
16
|
*/
|
|
@@ -83,6 +83,7 @@ export type ITuningConfig = {
|
|
|
83
83
|
maxSegmentRetryCount: number;
|
|
84
84
|
sourceOpenTimeout: number;
|
|
85
85
|
rejectOnSourceOpenTimeout: boolean;
|
|
86
|
+
vktvAbrThrottle: number | null;
|
|
86
87
|
};
|
|
87
88
|
dashCmafLive: {
|
|
88
89
|
maxActiveLiveOffset: Milliseconds;
|
|
@@ -157,6 +158,8 @@ export type ITuningConfig = {
|
|
|
157
158
|
useNativeHLSTextTracks: boolean;
|
|
158
159
|
useManagedMediaSource: boolean;
|
|
159
160
|
useNewSwitchTo: boolean;
|
|
161
|
+
useNewDashProvider: boolean;
|
|
162
|
+
useNewAutoSelectVideoTrack: boolean;
|
|
160
163
|
useSafariEndlessRequestBugfix: boolean;
|
|
161
164
|
useRefactoredSearchGap: boolean;
|
|
162
165
|
isAudioDisabled: boolean;
|