@vkontakte/videoplayer-core 2.0.103 → 2.0.104
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 +73 -27
- package/es2015.esm.js +72 -26
- package/es2018.cjs.js +73 -27
- package/es2018.esm.js +72 -26
- package/esnext.cjs.js +75 -29
- package/esnext.esm.js +73 -27
- package/evergreen.esm.js +73 -27
- package/package.json +7 -7
- package/types/enums/AndroidPreferredFormat.d.ts +8 -0
- package/types/enums/WebmCodecStrategy.d.ts +7 -0
- package/types/env.d.ts +1 -0
- package/types/index.d.ts +12 -0
- package/types/player/Player.d.ts +173 -0
- package/{index.d.ts → types/player/types.d.ts} +64 -391
- package/types/player/utils/optimisticPosition.d.ts +12 -0
- package/types/player/utils/selectContainer.d.ts +3 -0
- package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +31 -0
- package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +23 -0
- package/types/providers/ChromecastProvider/index.d.ts +33 -0
- package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +37 -0
- package/types/providers/DashLiveProvider/index.d.ts +2 -0
- package/types/providers/DashLiveProvider/types.d.ts +21 -0
- package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +25 -0
- package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +143 -0
- package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +33 -0
- package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +42 -0
- package/types/providers/DashProvider/baseDashProvider.d.ts +52 -0
- package/types/providers/DashProvider/consts.d.ts +1 -0
- package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +8 -0
- package/types/providers/DashProvider/dashProvider.d.ts +6 -0
- package/types/providers/DashProvider/index.d.ts +2 -0
- package/types/providers/DashProvider/lib/buffer.d.ts +103 -0
- package/types/providers/DashProvider/lib/fetcher.d.ts +51 -0
- package/types/providers/DashProvider/lib/parsers/mpd.d.ts +3 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/BoxModel.d.ts +20 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/BoxParser.d.ts +21 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/BoxTypeEnum.d.ts +26 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/box.d.ts +79 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/equi.d.ts +21 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/ftyp.d.ts +17 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/index.d.ts +22 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/mdat.d.ts +15 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/mdia.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/mfhd.d.ts +11 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/minf.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/moof.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/moov.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/prhd.d.ts +16 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/proj.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/sidx.d.ts +48 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/st3d.d.ts +23 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/sv3d.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/tfdt.d.ts +17 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/tfhd.d.ts +22 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/tkhd.d.ts +42 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/traf.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/trak.d.ts +7 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/trun.d.ts +31 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/unknown.d.ts +6 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/boxes/uuid.d.ts +6 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/fullBox.d.ts +15 -0
- package/types/providers/DashProvider/lib/parsers/mpeg/isobmff.d.ts +12 -0
- package/types/providers/DashProvider/lib/parsers/webm/ebml.d.ts +76 -0
- package/types/providers/DashProvider/lib/parsers/webm/webm.d.ts +3 -0
- package/types/providers/DashProvider/lib/player.d.ts +75 -0
- package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +18 -0
- package/types/providers/DashProvider/lib/types.d.ts +156 -0
- package/types/providers/DashProvider/lib/utils.d.ts +14 -0
- package/types/providers/HlsJsProvider/index.d.ts +24 -0
- package/types/providers/HlsLiveProvider/index.d.ts +30 -0
- package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +3 -0
- package/types/providers/HlsProvider/index.d.ts +21 -0
- package/types/providers/HlsProvider/manifestDataExtractor.d.ts +21 -0
- package/types/providers/MpegProvider/index.d.ts +20 -0
- package/types/providers/ProviderContainer/index.d.ts +42 -0
- package/types/providers/ProviderContainer/types.d.ts +20 -0
- package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +20 -0
- package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +12 -0
- package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +188 -0
- package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +60 -0
- package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +9 -0
- package/types/providers/types.d.ts +83 -0
- package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +44 -0
- package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +30 -0
- package/types/providers/utils/HTMLVideoElement/clear.d.ts +1 -0
- package/types/providers/utils/HTMLVideoElement/destroy.d.ts +1 -0
- package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +7 -0
- package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -0
- package/types/providers/utils/HTMLVideoElement/pool.d.ts +2 -0
- package/types/providers/utils/HTMLVideoElement/surface.d.ts +2 -0
- package/types/providers/utils/LiveOffset/index.d.ts +14 -0
- package/types/providers/utils/LiveOffset/types.d.ts +10 -0
- package/types/providers/utils/addQuicParam.d.ts +2 -0
- package/types/providers/utils/extractConnectionHeaders.d.ts +6 -0
- package/types/providers/utils/generateLiveUrl.d.ts +9 -0
- package/types/providers/utils/okQualityStringToVideoQuality.d.ts +3 -0
- package/types/providers/utils/parseFps.d.ts +1 -0
- package/types/providers/utils/syncDesiredState.d.ts +12 -0
- package/types/providers/utils/syncPlaybackState.d.ts +4 -0
- package/types/utils/3d/Camera3D.d.ts +14 -0
- package/types/utils/3d/CameraRotationManager.d.ts +62 -0
- package/types/utils/3d/Scene3D.d.ts +132 -0
- package/types/utils/3d/types.d.ts +25 -0
- package/types/utils/StateMachine/StateMachine.d.ts +19 -0
- package/types/utils/StateMachine/types.d.ts +60 -0
- package/types/utils/StatefulIterator/index.d.ts +13 -0
- package/types/utils/ThroughputEstimator.d.ts +25 -0
- package/types/utils/addScript.d.ts +2 -0
- package/types/utils/autoSelectVideoTrack.d.ts +26 -0
- package/types/utils/buffer/getBufferedRangeForPosition.d.ts +3 -0
- package/types/utils/buffer/getForwardBufferDuration.d.ts +3 -0
- package/types/utils/buffer/getTotalBufferDuration.d.ts +3 -0
- package/types/utils/buffer/isPositionBuffered.d.ts +3 -0
- package/types/utils/changePlaybackRate.d.ts +2 -0
- package/types/utils/hostnameFromUrl.d.ts +2 -0
- package/types/utils/isInPiP.d.ts +1 -0
- package/types/utils/link.d.ts +2 -0
- package/types/utils/mediaSource.d.ts +8 -0
- package/types/utils/observeElementVisibility.d.ts +3 -0
- package/types/utils/playbackTelemetry.d.ts +12 -0
- package/types/utils/setStateWithSubscribe.d.ts +3 -0
- package/types/utils/smoothedValue/baseSmoothedValue.d.ts +18 -0
- package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +7 -0
- package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +10 -0
- package/types/utils/smoothedValue/smoothedValueFactory.d.ts +6 -0
- package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +8 -0
- package/types/utils/smoothedValue/types.d.ts +26 -0
- package/types/utils/smoothedValue/utils.d.ts +3 -0
- package/types/utils/tuningConfig.d.ts +164 -0
- package/types/utils/videoFormat.d.ts +2 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type BoxParser } from '../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
2
|
+
/**
|
|
3
|
+
* Generic boxes description
|
|
4
|
+
*
|
|
5
|
+
* aligned(8) class Box (unsigned int(32) boxtype, optional unsigned int(8)[16] extended_type) {
|
|
6
|
+
* unsigned int(32) size;
|
|
7
|
+
* unsigned int(32) type = boxtype;
|
|
8
|
+
* if (size==1) {
|
|
9
|
+
* unsigned int(64) largesize;
|
|
10
|
+
* } else if (size==0) {
|
|
11
|
+
* // boxes extends to end of file
|
|
12
|
+
* }
|
|
13
|
+
* if (boxtype==‘uuid’) {
|
|
14
|
+
* unsigned int(8)[16] usertype = extended_type;
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
export declare class Box {
|
|
19
|
+
source: DataView;
|
|
20
|
+
boxParser: BoxParser;
|
|
21
|
+
type: string;
|
|
22
|
+
size32: number;
|
|
23
|
+
size64: number;
|
|
24
|
+
usertype: number;
|
|
25
|
+
content: DataView;
|
|
26
|
+
children: Box[];
|
|
27
|
+
/**
|
|
28
|
+
* Next byte in source buffer to be read
|
|
29
|
+
*/
|
|
30
|
+
protected cursor: number;
|
|
31
|
+
/**
|
|
32
|
+
* for compatibility with old Box type
|
|
33
|
+
*/
|
|
34
|
+
get id(): string;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
get size(): number;
|
|
39
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
40
|
+
/**
|
|
41
|
+
* Generic method to parses children boxes
|
|
42
|
+
* Override in descendants
|
|
43
|
+
*/
|
|
44
|
+
protected parseChildrenBoxes(): Box[];
|
|
45
|
+
/**
|
|
46
|
+
* Internal method to scan for children
|
|
47
|
+
*/
|
|
48
|
+
protected scanForBoxes(view: DataView): Box[];
|
|
49
|
+
/**
|
|
50
|
+
* Reads given number of bytes from source buffer as a string
|
|
51
|
+
* starting from current cursor position and using provided encoding
|
|
52
|
+
* Moves cursor forward
|
|
53
|
+
*/
|
|
54
|
+
protected readString(byteLength: number, encoding?: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Reads 1 byte from source buffer as an unsigned integer
|
|
57
|
+
* starting from current cursor position
|
|
58
|
+
* Moves cursor forward
|
|
59
|
+
*/
|
|
60
|
+
protected readUint8(): number;
|
|
61
|
+
/**
|
|
62
|
+
* Reads 2 bytes from source buffer as an unsigned integer
|
|
63
|
+
* starting from current cursor position
|
|
64
|
+
* Moves cursor forward
|
|
65
|
+
*/
|
|
66
|
+
protected readUint16(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Reads 4 bytes from source buffer as an unsigned integer
|
|
69
|
+
* starting from current cursor position
|
|
70
|
+
* Moves cursor forward
|
|
71
|
+
*/
|
|
72
|
+
protected readUint32(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Reads 8 bytes from source buffer as an unsigned BigInt
|
|
75
|
+
* starting from current cursor position
|
|
76
|
+
* Moves cursor forward
|
|
77
|
+
*/
|
|
78
|
+
protected readUint64(): bigint;
|
|
79
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class ProjectionDataBox(unsigned int(32) proj_type, unsigned int(8)version, unsigned int(24) flags)
|
|
5
|
+
* extends FullBox(proj_type, version, flags) {
|
|
6
|
+
* }
|
|
7
|
+
*
|
|
8
|
+
* aligned(8) class EquirectangularProjection ProjectionDataBox(‘equi’, 0, 0) {
|
|
9
|
+
* unsigned int(32) projection_bounds_top;
|
|
10
|
+
* unsigned int(32) projection_bounds_bottom;
|
|
11
|
+
* unsigned int(32) projection_bounds_left;
|
|
12
|
+
* unsigned int(32) projection_bounds_right;
|
|
13
|
+
* }
|
|
14
|
+
*/
|
|
15
|
+
export declare class EquiBox extends FullBox {
|
|
16
|
+
projectionBoundsTop: number;
|
|
17
|
+
projectionBoundsBottom: number;
|
|
18
|
+
projectionBoundsLeft: number;
|
|
19
|
+
projectionBoundsRight: number;
|
|
20
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* File Type Box description
|
|
5
|
+
*
|
|
6
|
+
* aligned(8) class FileTypeBox extends Box(‘ftyp’) {
|
|
7
|
+
* unsigned int(32) major_brand;
|
|
8
|
+
* unsigned int(32) minor_version;
|
|
9
|
+
* unsigned int(32) compatible_brands[]; // to end of the boxes
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
export declare class FtypBox extends Box {
|
|
13
|
+
majorBrand: string;
|
|
14
|
+
minorVersion: number;
|
|
15
|
+
compatibleBrands: string[];
|
|
16
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
|
|
2
|
+
export { UnknownBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/unknown';
|
|
3
|
+
export { UuidBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/uuid';
|
|
4
|
+
export { FtypBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/ftyp';
|
|
5
|
+
export { MoovBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/moov';
|
|
6
|
+
export { MoofBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/moof';
|
|
7
|
+
export { MdatBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/mdat';
|
|
8
|
+
export { SidxBox, SidxBoxSegment } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/sidx';
|
|
9
|
+
export { TrakBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/trak';
|
|
10
|
+
export { Sv3dBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/sv3d';
|
|
11
|
+
export { St3dBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/st3d';
|
|
12
|
+
export { PrhdBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/prhd';
|
|
13
|
+
export { EquiBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/equi';
|
|
14
|
+
export { MdiaBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/mdia';
|
|
15
|
+
export { TkhdBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/tkhd';
|
|
16
|
+
export { MinfBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/minf';
|
|
17
|
+
export { ProjBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/proj';
|
|
18
|
+
export { MfhdBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/mfhd';
|
|
19
|
+
export { TrafBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/traf';
|
|
20
|
+
export { TfhdBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/tfhd';
|
|
21
|
+
export { TfdtBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/tfdt';
|
|
22
|
+
export { TrunBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/boxes/trun';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* Media Data Box
|
|
5
|
+
*
|
|
6
|
+
* All its content is binary media data
|
|
7
|
+
*
|
|
8
|
+
* aligned(8) class MediaDataBox extends Box(‘mdat’) {
|
|
9
|
+
* bit(8) data[];
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
export declare class MdatBox extends Box {
|
|
13
|
+
data: DataView;
|
|
14
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class MovieFragmentHeaderBox extends FullBox(‘mfhd’, 0, 0) {
|
|
5
|
+
* unsigned int(32) sequence_number;
|
|
6
|
+
* }
|
|
7
|
+
*/
|
|
8
|
+
export declare class MfhdBox extends FullBox {
|
|
9
|
+
sequenceNumber: number;
|
|
10
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* aligned(8) class ProjectionHeader extends FullBox(‘prhd’, 0, 0) {
|
|
6
|
+
* int(32) pose_yaw_degrees;
|
|
7
|
+
* int(32) pose_pitch_degrees;
|
|
8
|
+
* int(32) pose_roll_degrees;
|
|
9
|
+
* }
|
|
10
|
+
*/
|
|
11
|
+
export declare class PrhdBox extends FullBox {
|
|
12
|
+
poseYawDegrees: number;
|
|
13
|
+
posePitchDegrees: number;
|
|
14
|
+
poseRollDegrees: number;
|
|
15
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
16
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
export type SidxBoxSegment = {
|
|
4
|
+
referenceType: number;
|
|
5
|
+
referencedSize: number;
|
|
6
|
+
subsegmentDuration: number;
|
|
7
|
+
SAPType: number;
|
|
8
|
+
SAPDeltaTime: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* aligned(8) class SegmentIndexBox extends FullBox(‘sidx’, version, 0) {
|
|
12
|
+
* unsigned int(32) reference_ID;
|
|
13
|
+
* unsigned int(32) timescale;
|
|
14
|
+
* if (version==0) {
|
|
15
|
+
* unsigned int(32) earliest_presentation_time;
|
|
16
|
+
* unsigned int(32) first_offset;
|
|
17
|
+
* }
|
|
18
|
+
* else {
|
|
19
|
+
* unsigned int(64) earliest_presentation_time;
|
|
20
|
+
* unsigned int(64) first_offset;
|
|
21
|
+
* }
|
|
22
|
+
* unsigned int(16) reserved = 0;
|
|
23
|
+
* unsigned int(16) reference_count;
|
|
24
|
+
* for(i=1; i <= reference_count; i++)
|
|
25
|
+
* {
|
|
26
|
+
* bit (1) reference_type;
|
|
27
|
+
* unsigned int(31) referenced_size;
|
|
28
|
+
* unsigned int(32) subsegment_duration;
|
|
29
|
+
* bit(1) starts_with_SAP;
|
|
30
|
+
* unsigned int(3) SAP_type;
|
|
31
|
+
* unsigned int(28) SAP_delta_time;
|
|
32
|
+
* }
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
export declare class SidxBox extends FullBox {
|
|
36
|
+
referenceId: number;
|
|
37
|
+
timescale: number;
|
|
38
|
+
earliestPresentationTime32: number;
|
|
39
|
+
firstOffset32: number;
|
|
40
|
+
earliestPresentationTime64: number;
|
|
41
|
+
firstOffset64: number;
|
|
42
|
+
reserved: number;
|
|
43
|
+
referenceCount: number;
|
|
44
|
+
segments: SidxBoxSegment[];
|
|
45
|
+
get earliestPresentationTime(): number;
|
|
46
|
+
get firstOffset(): number;
|
|
47
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
48
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
declare enum StereoModeEnum {
|
|
7
|
+
MONOSCOPIC = 0,
|
|
8
|
+
TOP_BOTTOM = 1,
|
|
9
|
+
LEFT_RIGHT = 2,
|
|
10
|
+
STEREO_CUSTOM = 3,
|
|
11
|
+
RIGHT_LEFT = 4
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* aligned(8) class Stereoscopic3D extends FullBox(‘st3d’, 0, 0) {
|
|
16
|
+
* unsigned int(8) stereo_mode;
|
|
17
|
+
* }
|
|
18
|
+
*/
|
|
19
|
+
export declare class St3dBox extends FullBox {
|
|
20
|
+
stereoMode: StereoModeEnum;
|
|
21
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class TrackFragmentBaseMediaDecodeTimeBox extends FullBox(‘tfdt’, version, 0) {
|
|
5
|
+
* if (version==1) {
|
|
6
|
+
* unsigned int(64) baseMediaDecodeTime;
|
|
7
|
+
* } else { // version==0
|
|
8
|
+
* unsigned int(32) baseMediaDecodeTime;
|
|
9
|
+
* }
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
export declare class TfdtBox extends FullBox {
|
|
13
|
+
private readonly baseMediaDecodeTime32;
|
|
14
|
+
private readonly baseMediaDecodeTime64;
|
|
15
|
+
get baseMediaDecodeTime(): bigint | number;
|
|
16
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class TrackFragmentHeaderBox extends FullBox(‘tfhd’, 0, tf_flags){
|
|
5
|
+
* unsigned int(32) track_ID;
|
|
6
|
+
* // all the following are optional fields
|
|
7
|
+
* unsigned int(64) base_data_offset;
|
|
8
|
+
* unsigned int(32) sample_description_index;
|
|
9
|
+
* unsigned int(32) default_sample_duration;
|
|
10
|
+
* unsigned int(32) default_sample_size;
|
|
11
|
+
* unsigned int(32) default_sample_flags
|
|
12
|
+
* }
|
|
13
|
+
*/
|
|
14
|
+
export declare class TfhdBox extends FullBox {
|
|
15
|
+
trackId: number;
|
|
16
|
+
baseDataOffset: bigint;
|
|
17
|
+
sampleDescriptionIndex: number;
|
|
18
|
+
defaultSampleDuration: number;
|
|
19
|
+
defaultSampleSize: number;
|
|
20
|
+
defaultSampleFlags: number;
|
|
21
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
22
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class TrackHeaderBox extends FullBox(‘tkhd’, version, flags){
|
|
5
|
+
* if (version==1) {
|
|
6
|
+
* unsigned int(64) creation_time;
|
|
7
|
+
* unsigned int(64) modification_time;
|
|
8
|
+
* unsigned int(32) track_ID;
|
|
9
|
+
* const unsigned int(32) reserved = 0;
|
|
10
|
+
* unsigned int(64) duration;
|
|
11
|
+
* } else { // version==0
|
|
12
|
+
* unsigned int(32) creation_time;
|
|
13
|
+
* unsigned int(32) modification_time;
|
|
14
|
+
* unsigned int(32) track_ID;
|
|
15
|
+
* const unsigned int(32) reserved = 0;
|
|
16
|
+
* unsigned int(32) duration;
|
|
17
|
+
* }
|
|
18
|
+
* const unsigned int(32)[2] reserved = 0;
|
|
19
|
+
* template int(16) layer = 0;
|
|
20
|
+
* template int(16) alternate_group = 0;
|
|
21
|
+
* template int(16) volume = {if track_is_audio 0x0100 else 0};
|
|
22
|
+
* const unsigned int(16) reserved = 0;
|
|
23
|
+
* template int(32)[9] matrix=
|
|
24
|
+
* { 0x00010000,0,0,0,0x00010000,0,0,0,0x40000000 };
|
|
25
|
+
* // unity matrix
|
|
26
|
+
* unsigned int(32) width;
|
|
27
|
+
* unsigned int(32) height;
|
|
28
|
+
* }
|
|
29
|
+
*/
|
|
30
|
+
export declare class TkhdBox extends FullBox {
|
|
31
|
+
creationTime: number;
|
|
32
|
+
modificationTime: number;
|
|
33
|
+
trackId: number;
|
|
34
|
+
duration: number;
|
|
35
|
+
layer: number;
|
|
36
|
+
alternateGroup: number;
|
|
37
|
+
volume: number;
|
|
38
|
+
matrix: number[][];
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
42
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class TrackRunBox extends FullBox(‘trun’, version, tr_flags) {
|
|
5
|
+
* unsigned int(32) sample_count;
|
|
6
|
+
* // the following are optional fields
|
|
7
|
+
* signed int(32) data_offset;
|
|
8
|
+
* unsigned int(32) first_sample_flags;
|
|
9
|
+
* // all fields in the following array are optional
|
|
10
|
+
* {
|
|
11
|
+
* unsigned int(32) sample_duration;
|
|
12
|
+
* unsigned int(32) sample_size;
|
|
13
|
+
* unsigned int(32) sample_flags
|
|
14
|
+
* if (version == 0)
|
|
15
|
+
* { unsigned int(32)
|
|
16
|
+
* else
|
|
17
|
+
* { signed int(32)
|
|
18
|
+
* }[ sample_count ]
|
|
19
|
+
* }
|
|
20
|
+
*/
|
|
21
|
+
export declare class TrunBox extends FullBox {
|
|
22
|
+
sampleCount: number;
|
|
23
|
+
dataOffset: number;
|
|
24
|
+
firstSampleFlags: number;
|
|
25
|
+
sampleDuration: number[];
|
|
26
|
+
sampleSize: number[];
|
|
27
|
+
sampleFlags: number[];
|
|
28
|
+
sampleCompositionTimeOffset: number[];
|
|
29
|
+
private readonly optionalFields;
|
|
30
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
31
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Box } from '../../../../../providers/DashProvider/lib/parsers/mpeg/box';
|
|
2
|
+
import { type BoxParser } from '../../../../../providers/DashProvider/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* Extended generic boxes description
|
|
5
|
+
*
|
|
6
|
+
* aligned(8) class FullBox(unsigned int(32) boxtype, unsigned int(8) v, bit(24) f) extends Box(boxtype) {
|
|
7
|
+
* unsigned int(8) version = v;
|
|
8
|
+
* bit(24) flags = f;
|
|
9
|
+
* }
|
|
10
|
+
*/
|
|
11
|
+
export declare class FullBox extends Box {
|
|
12
|
+
version: number;
|
|
13
|
+
flags: number;
|
|
14
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MpegParser, Segment } from '../../../../../providers/DashProvider/lib/types';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param view
|
|
5
|
+
*/
|
|
6
|
+
export declare const validateHeader: (view: DataView) => boolean;
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* @param view
|
|
10
|
+
*/
|
|
11
|
+
export declare const parseSegments: (view: DataView) => Segment[];
|
|
12
|
+
export declare const parser: MpegParser;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Byte, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
2
|
+
export declare enum Tag {
|
|
3
|
+
EBML = 440786851,
|
|
4
|
+
EBMLVersion = 17030,
|
|
5
|
+
EBMLReadVersion = 17143,
|
|
6
|
+
EBMLMaxIDLength = 17138,
|
|
7
|
+
EBMLMaxSizeLength = 17139,
|
|
8
|
+
DocType = 17026,
|
|
9
|
+
DocTypeVersion = 17031,
|
|
10
|
+
DocTypeReadVersion = 17029,
|
|
11
|
+
Void = 236,
|
|
12
|
+
Segment = 408125543,
|
|
13
|
+
SeekHead = 290298740,
|
|
14
|
+
Seek = 19899,
|
|
15
|
+
SeekID = 21419,
|
|
16
|
+
SeekPosition = 21420,
|
|
17
|
+
Info = 357149030,
|
|
18
|
+
TimestampScale = 2807729,
|
|
19
|
+
Duration = 17545,
|
|
20
|
+
Tracks = 374648427,
|
|
21
|
+
TrackEntry = 174,
|
|
22
|
+
Video = 224,
|
|
23
|
+
Projection = 30320,
|
|
24
|
+
ProjectionType = 30321,
|
|
25
|
+
ProjectionPrivate = 30322,
|
|
26
|
+
Chapters = 272869232,
|
|
27
|
+
Cluster = 524531317,
|
|
28
|
+
Timestamp = 231,
|
|
29
|
+
SilentTracks = 22612,
|
|
30
|
+
SilentTrackNumber = 22743,
|
|
31
|
+
Position = 167,
|
|
32
|
+
PrevSize = 171,
|
|
33
|
+
SimpleBlock = 163,
|
|
34
|
+
BlockGroup = 160,
|
|
35
|
+
EncryptedBlock = 175,
|
|
36
|
+
Attachments = 423732329,
|
|
37
|
+
Tags = 307544935,
|
|
38
|
+
Cues = 475249515,
|
|
39
|
+
CuePoint = 187,
|
|
40
|
+
CueTime = 179,
|
|
41
|
+
CueTrackPositions = 183,
|
|
42
|
+
CueTrack = 247,
|
|
43
|
+
CueClusterPosition = 241,
|
|
44
|
+
CueRelativePosition = 240,
|
|
45
|
+
CueDuration = 178,
|
|
46
|
+
CueBlockNumber = 21368,
|
|
47
|
+
CueCodecState = 234,
|
|
48
|
+
CueReference = 219,
|
|
49
|
+
CueRefTime = 150
|
|
50
|
+
}
|
|
51
|
+
export type UnknownTag = string;
|
|
52
|
+
export declare enum Type {
|
|
53
|
+
SignedInteger = "int",
|
|
54
|
+
UnsignedInteger = "uint",
|
|
55
|
+
Float = "float",
|
|
56
|
+
String = "string",
|
|
57
|
+
UTF8 = "utf8",
|
|
58
|
+
Date = "date",
|
|
59
|
+
Master = "master",
|
|
60
|
+
Binary = "binary"
|
|
61
|
+
}
|
|
62
|
+
type TagValue<ExactType extends Type> = ExactType extends Type.SignedInteger ? number : ExactType extends Type.UnsignedInteger ? number : ExactType extends Type.Float ? number : ExactType extends Type.String ? string : ExactType extends Type.UTF8 ? string : ExactType extends Type.Date ? Milliseconds : ExactType extends Type.Master ? DataView : ExactType extends Type.Binary ? DataView : never;
|
|
63
|
+
export type ParsedTag = {
|
|
64
|
+
tag: Tag | UnknownTag;
|
|
65
|
+
type: Type;
|
|
66
|
+
tagHeaderSize: Byte;
|
|
67
|
+
tagSize: Byte;
|
|
68
|
+
value: DataView;
|
|
69
|
+
valueSize: Byte;
|
|
70
|
+
};
|
|
71
|
+
export declare const parseTag: (view: DataView) => ParsedTag;
|
|
72
|
+
export declare const parseUint: (view: DataView, size?: Byte) => number;
|
|
73
|
+
export declare const parseValue: <T extends Type>(view: DataView, type: T) => TagValue<T>;
|
|
74
|
+
export declare const parseRecursively: (view: DataView, onTag: (tag: ParsedTag) => boolean) => void;
|
|
75
|
+
export declare const validateHeader: (view: DataView) => boolean;
|
|
76
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { HttpConnectionType } from '../../../player/types';
|
|
2
|
+
import { CommonInit, Manifest, Representation, RepresentationKind } from './types';
|
|
3
|
+
import StateMachine from '../../../utils/StateMachine/StateMachine';
|
|
4
|
+
import type ThroughputEstimator from '../../../utils/ThroughputEstimator';
|
|
5
|
+
import { ITuningConfig } from '../../../utils/tuningConfig';
|
|
6
|
+
import { IError, ISubject, IValueSubject, Milliseconds, Seconds } from '@vkontakte/videoplayer-shared';
|
|
7
|
+
import { ISmoothedValue } from '../../../utils/smoothedValue/types';
|
|
8
|
+
export declare enum State {
|
|
9
|
+
NONE = "none",
|
|
10
|
+
MANIFEST_READY = "manifest_ready",
|
|
11
|
+
REPRESENTATIOS_READY = "representations_ready",
|
|
12
|
+
RUNNING = "running"
|
|
13
|
+
}
|
|
14
|
+
export interface Params {
|
|
15
|
+
throughputEstimator: ThroughputEstimator;
|
|
16
|
+
tuning: ITuningConfig;
|
|
17
|
+
compatibilityMode?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class Player {
|
|
20
|
+
private element;
|
|
21
|
+
private manifestUrlString;
|
|
22
|
+
private source;
|
|
23
|
+
private manifest;
|
|
24
|
+
private tuning;
|
|
25
|
+
private videoBufferManager;
|
|
26
|
+
private audioBufferManager;
|
|
27
|
+
private bufferManagers;
|
|
28
|
+
private throughputEstimator;
|
|
29
|
+
private subscription;
|
|
30
|
+
private representationSubscription;
|
|
31
|
+
private fetcher;
|
|
32
|
+
state$: StateMachine<State>;
|
|
33
|
+
currentVideoRepresentation$: IValueSubject<Representation['id'] | undefined>;
|
|
34
|
+
currentVideoRepresentationInit$: IValueSubject<CommonInit | undefined>;
|
|
35
|
+
currentVideoSegmentLength$: IValueSubject<number>;
|
|
36
|
+
currentAudioSegmentLength$: IValueSubject<number>;
|
|
37
|
+
error$: ISubject<IError>;
|
|
38
|
+
lastConnectionType$: IValueSubject<HttpConnectionType | undefined>;
|
|
39
|
+
lastConnectionReused$: IValueSubject<boolean | undefined>;
|
|
40
|
+
lastRequestFirstBytes$: IValueSubject<Milliseconds | undefined>;
|
|
41
|
+
isLive$: IValueSubject<boolean>;
|
|
42
|
+
liveDuration$: IValueSubject<Milliseconds>;
|
|
43
|
+
liveAvailabilityStartTime$: IValueSubject<Seconds | undefined>;
|
|
44
|
+
bufferLength$: IValueSubject<Milliseconds>;
|
|
45
|
+
liveLoadBufferLength$: IValueSubject<Milliseconds>;
|
|
46
|
+
livePositionFromPlayer$: IValueSubject<number>;
|
|
47
|
+
liveEstimatedDelay: ISmoothedValue;
|
|
48
|
+
timeInWaiting: number;
|
|
49
|
+
isActiveLowLatency: boolean;
|
|
50
|
+
private isUpdatingLive;
|
|
51
|
+
private isJumpGapAfterSeekLive;
|
|
52
|
+
private liveLastSeekOffset;
|
|
53
|
+
private forceEnded$;
|
|
54
|
+
private gapWatchdogActive;
|
|
55
|
+
private gapWatchdogSubscription;
|
|
56
|
+
private stallWatchdogSubscription;
|
|
57
|
+
private destroyController;
|
|
58
|
+
constructor(params: Params);
|
|
59
|
+
initManifest: (param_0: HTMLVideoElement, param_1: string, param_2: number) => Promise<void | undefined>;
|
|
60
|
+
updateManifest: () => Promise<Manifest | null | undefined>;
|
|
61
|
+
seekLive(nextOffset: Milliseconds): Promise<void>;
|
|
62
|
+
initRepresentations: (param_0: string, param_1: string | undefined, param_2: import("../../../player/types").URLSource | undefined) => Promise<void | undefined>;
|
|
63
|
+
initBuffer(): void;
|
|
64
|
+
switchRepresentation(kind: RepresentationKind, id: Representation['id']): Promise<void>;
|
|
65
|
+
seek(requestedPosition: Milliseconds, forcePrecise: boolean): void;
|
|
66
|
+
stop(): void;
|
|
67
|
+
setBufferTarget(time: Milliseconds): void;
|
|
68
|
+
getRepresentations(): Manifest['representations'] | undefined;
|
|
69
|
+
setPreloadOnly(preloadOnly: boolean): void;
|
|
70
|
+
destroy(): void;
|
|
71
|
+
private normolizeLiveOffset;
|
|
72
|
+
private tick;
|
|
73
|
+
private updateLive;
|
|
74
|
+
private jumpGap;
|
|
75
|
+
}
|