@vkontakte/videoplayer-core 2.0.131-dev.20b944d3.0 → 2.0.131-dev.2f63aa0e.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 +93 -32
- package/es2015.esm.js +89 -28
- package/es2018.cjs.js +94 -33
- package/es2018.esm.js +90 -29
- package/es2024.cjs.js +95 -34
- package/es2024.esm.js +94 -33
- package/esnext.cjs.js +95 -34
- package/esnext.esm.js +94 -33
- package/evergreen.esm.js +89 -28
- package/package.json +2 -2
- 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/providers/utils/StallsManager.d.ts +18 -4
- package/types/utils/autoSelectTrack.d.ts +6 -3
- package/types/utils/qualityLimits.d.ts +3 -18
- package/types/utils/tuningConfig.d.ts +27 -7
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class MovieHeaderBox extends FullBox(‘mvhd’, version, 0) {
|
|
5
|
+
* if (version==1) {
|
|
6
|
+
* unsigned int(64) creation_time;
|
|
7
|
+
* unsigned int(64) modification_time;
|
|
8
|
+
* unsigned int(32) timescale;
|
|
9
|
+
* unsigned int(64) duration;
|
|
10
|
+
* } else { // version==0
|
|
11
|
+
* unsigned int(32) creation_time;
|
|
12
|
+
* unsigned int(32) modification_time;
|
|
13
|
+
* unsigned int(32) timescale;
|
|
14
|
+
* unsigned int(32) duration;
|
|
15
|
+
* }
|
|
16
|
+
* template int(32) rate = 0x00010000; // typically 1.0
|
|
17
|
+
* template int(16) volume = 0x0100; // typically, full volume
|
|
18
|
+
* const bit(16) reserved = 0;
|
|
19
|
+
* const unsigned int(32)[2] reserved = 0;
|
|
20
|
+
* template int(32)[9] matrix =
|
|
21
|
+
* { 0x00010000,0,0,0,0x00010000,0,0,0,0x40000000 };
|
|
22
|
+
* // Unity matrix
|
|
23
|
+
* bit(32)[6] pre_defined = 0;
|
|
24
|
+
* unsigned int(32) next_track_ID;
|
|
25
|
+
* }
|
|
26
|
+
*/
|
|
27
|
+
export declare class MvhdBox extends FullBox {
|
|
28
|
+
creationTime: number;
|
|
29
|
+
modificationTime: number;
|
|
30
|
+
timescale: number;
|
|
31
|
+
duration: number;
|
|
32
|
+
rate: number;
|
|
33
|
+
volume: number;
|
|
34
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
35
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/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,8 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
|
|
2
|
+
import { BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class Projection extends Box(‘proj’) {}
|
|
5
|
+
*/
|
|
6
|
+
export declare class ProjBox extends Box {
|
|
7
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
8
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/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/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/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,8 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
|
|
2
|
+
import { BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* Sample Table Box
|
|
5
|
+
*/
|
|
6
|
+
export declare class StblBox extends Box {
|
|
7
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
8
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
2
|
+
import { FullBox } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class SampleDescriptionBox extends FullBox('stsd', version, 0) {
|
|
5
|
+
* unsigned int(32) entry_count;
|
|
6
|
+
* }
|
|
7
|
+
*/
|
|
8
|
+
export declare class StsdBox extends FullBox {
|
|
9
|
+
private entryCount;
|
|
10
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
11
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
|
|
2
|
+
import { BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class SphericalVideoBox extends Box(‘sv3d’) {}
|
|
5
|
+
*/
|
|
6
|
+
export declare class Sv3dBox extends Box {
|
|
7
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
8
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/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/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/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/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/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,8 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
|
|
2
|
+
import { BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class TrackFragmentBox extends Box(‘traf’) { }
|
|
5
|
+
*/
|
|
6
|
+
export declare class TrafBox extends Box {
|
|
7
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
|
|
2
|
+
import { BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
/**
|
|
4
|
+
* aligned(8) class TrackBox extends Box(‘trak’) {}
|
|
5
|
+
*/
|
|
6
|
+
export declare class TrakBox extends Box {
|
|
7
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
8
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { FullBox } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/fullBox';
|
|
2
|
+
import { type BoxParser } from '../../../../../../providers/DashProviderNew/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,11 @@
|
|
|
1
|
+
import { Box } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
|
|
2
|
+
import { BoxParser } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/BoxParser';
|
|
3
|
+
import { Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
4
|
+
export declare class UuidBox extends Box {
|
|
5
|
+
serverDataReceivedTimestamp: Milliseconds;
|
|
6
|
+
serverDataPreparedTime: Milliseconds;
|
|
7
|
+
private readonly ondemandPrefix;
|
|
8
|
+
private readonly ondemandDataReceivedKey;
|
|
9
|
+
private readonly ondemandDataPreparedKey;
|
|
10
|
+
constructor(source: DataView, boxParser: BoxParser);
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Box } from '../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
|
|
2
|
+
import { type BoxParser } from '../../../../../providers/DashProviderNew/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/DashProviderNew/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",// Big-endian, any size from 1 to 8 octets
|
|
54
|
+
UnsignedInteger = "uint",// Big-endian, any size from 1 to 8 octets
|
|
55
|
+
Float = "float",// Big-endian, defined for 4 and 8 octets (32, 64 bits)
|
|
56
|
+
String = "string",// Printable ASCII (0x20 to 0x7E), zero-padded when needed
|
|
57
|
+
UTF8 = "utf8",// Unicode string, zero padded when needed (RFC 2279)
|
|
58
|
+
Date = "date",// signed 8 octets integer in nanoseconds with 0 indicating the precise beginning of the millennium (at 2001-01-01T00:00:00,000000000 UTC)
|
|
59
|
+
Master = "master",// contains other EBML sub-elements of the next lower level
|
|
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,92 @@
|
|
|
1
|
+
import { HttpConnectionType } from '../../../player/types';
|
|
2
|
+
import { CommonInit, LiveStreamStatus, Manifest, Representation, StreamKind, TextRepresentation } 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, ITracer, IValueSubject, Milliseconds, Subject } from '@vkontakte/videoplayer-shared';
|
|
7
|
+
export declare enum State {
|
|
8
|
+
NONE = "none",
|
|
9
|
+
MANIFEST_READY = "manifest_ready",
|
|
10
|
+
REPRESENTATIOS_READY = "representations_ready",
|
|
11
|
+
RUNNING = "running"
|
|
12
|
+
}
|
|
13
|
+
export interface Params {
|
|
14
|
+
throughputEstimator: ThroughputEstimator;
|
|
15
|
+
tuning: ITuningConfig;
|
|
16
|
+
compatibilityMode?: boolean;
|
|
17
|
+
tracer: ITracer;
|
|
18
|
+
}
|
|
19
|
+
export declare class Player {
|
|
20
|
+
private element;
|
|
21
|
+
private manifestUrlString;
|
|
22
|
+
private source;
|
|
23
|
+
private manifest;
|
|
24
|
+
private tuning;
|
|
25
|
+
private tracer;
|
|
26
|
+
private videoBufferManager;
|
|
27
|
+
private audioBufferManager;
|
|
28
|
+
private bufferManagers;
|
|
29
|
+
private liveTextManager;
|
|
30
|
+
private throughputEstimator;
|
|
31
|
+
private subscription;
|
|
32
|
+
private representationSubscription;
|
|
33
|
+
private fetcher;
|
|
34
|
+
state$: StateMachine<State>;
|
|
35
|
+
currentVideoRepresentation$: IValueSubject<Representation['id'] | undefined>;
|
|
36
|
+
currentVideoRepresentationInit$: IValueSubject<CommonInit | undefined>;
|
|
37
|
+
currentAudioRepresentation$: IValueSubject<Representation['id'] | undefined>;
|
|
38
|
+
currentVideoSegmentLength$: IValueSubject<number>;
|
|
39
|
+
currentAudioSegmentLength$: IValueSubject<number>;
|
|
40
|
+
error$: ISubject<IError>;
|
|
41
|
+
lastConnectionType$: IValueSubject<HttpConnectionType | undefined>;
|
|
42
|
+
lastConnectionReused$: IValueSubject<boolean | undefined>;
|
|
43
|
+
lastRequestFirstBytes$: IValueSubject<Milliseconds | undefined>;
|
|
44
|
+
currentLiveTextRepresentation$: IValueSubject<TextRepresentation | null>;
|
|
45
|
+
private timeoutSourceOpenId;
|
|
46
|
+
isLive$: IValueSubject<boolean>;
|
|
47
|
+
isActiveLive$: IValueSubject<boolean>;
|
|
48
|
+
isLowLatency$: IValueSubject<boolean>;
|
|
49
|
+
liveDuration$: IValueSubject<Milliseconds>;
|
|
50
|
+
liveSeekableDuration$: IValueSubject<Milliseconds>;
|
|
51
|
+
liveAvailabilityStartTime$: IValueSubject<Milliseconds>;
|
|
52
|
+
liveStreamStatus$: IValueSubject<LiveStreamStatus | undefined>;
|
|
53
|
+
bufferLength$: IValueSubject<Milliseconds>;
|
|
54
|
+
liveLatency$: IValueSubject<Milliseconds | undefined>;
|
|
55
|
+
liveLoadBufferLength$: IValueSubject<Milliseconds>;
|
|
56
|
+
livePositionFromPlayer$: IValueSubject<number>;
|
|
57
|
+
currentStallDuration$: IValueSubject<Milliseconds>;
|
|
58
|
+
videoLastDataObtainedTimestamp$: IValueSubject<Milliseconds>;
|
|
59
|
+
fetcherRecoverableError$: Subject<IError>;
|
|
60
|
+
fetcherError$: Subject<IError>;
|
|
61
|
+
private liveStreamEndTimestamp;
|
|
62
|
+
private liveBuffer;
|
|
63
|
+
private isUpdatingLive;
|
|
64
|
+
private isJumpGapAfterSeekLive;
|
|
65
|
+
private forceEnded$;
|
|
66
|
+
private gapWatchdogActive;
|
|
67
|
+
private gapWatchdogSubscription;
|
|
68
|
+
private stallWatchdogSubscription;
|
|
69
|
+
private livePauseWatchdogSubscription;
|
|
70
|
+
private destroyController;
|
|
71
|
+
constructor(params: Params);
|
|
72
|
+
initManifest: (param_0: HTMLVideoElement, param_1: string, param_2: number) => Promise<void | undefined>;
|
|
73
|
+
updateManifest: () => Promise<Manifest | null | undefined>;
|
|
74
|
+
seekLive(nextOffset: Milliseconds): Promise<void>;
|
|
75
|
+
initRepresentations: (param_0: string, param_1: string | undefined, param_2: import("../../../player/types").URLSource | undefined) => Promise<void | undefined>;
|
|
76
|
+
initBuffer(): void;
|
|
77
|
+
switchRepresentation(kind: StreamKind, id: Representation['id'], dropBuffer?: boolean): Promise<void>;
|
|
78
|
+
seek(requestedPosition: Milliseconds, forcePrecise: boolean): Promise<void>;
|
|
79
|
+
warmUpMediaSourceIfNeeded(position?: Milliseconds | undefined): void;
|
|
80
|
+
get isStreamEnded(): boolean;
|
|
81
|
+
stop(): void;
|
|
82
|
+
setBufferTarget(time: Milliseconds): void;
|
|
83
|
+
getStreams(): Manifest['streams'] | undefined;
|
|
84
|
+
setPreloadOnly(preloadOnly: boolean): void;
|
|
85
|
+
destroy(): void;
|
|
86
|
+
private initTracerSubscription;
|
|
87
|
+
private isManualDecreasePlaybackInLive;
|
|
88
|
+
private normolizeLiveOffset;
|
|
89
|
+
private tick;
|
|
90
|
+
private updateLive;
|
|
91
|
+
private jumpGap;
|
|
92
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Byte, IError, ISubject, Milliseconds } from '@vkontakte/videoplayer-shared';
|
|
2
|
+
declare class SourceBufferTaskQueue {
|
|
3
|
+
bufferFull$: ISubject<Byte>;
|
|
4
|
+
error$: ISubject<IError>;
|
|
5
|
+
private buffer;
|
|
6
|
+
private queue;
|
|
7
|
+
private currentTask;
|
|
8
|
+
private destroyed;
|
|
9
|
+
private abortRequested;
|
|
10
|
+
constructor(buffer: SourceBuffer);
|
|
11
|
+
append(data: BufferSource, signal?: AbortSignal): Promise<boolean>;
|
|
12
|
+
remove(from: Milliseconds, to: Milliseconds, signal?: AbortSignal): Promise<boolean>;
|
|
13
|
+
abort(init?: BufferSource): Promise<boolean>;
|
|
14
|
+
destroy(): void;
|
|
15
|
+
private completeTask;
|
|
16
|
+
private pull;
|
|
17
|
+
private execute;
|
|
18
|
+
}
|
|
19
|
+
export default SourceBufferTaskQueue;
|