@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.
Files changed (64) hide show
  1. package/es2015.cjs.js +93 -32
  2. package/es2015.esm.js +89 -28
  3. package/es2018.cjs.js +94 -33
  4. package/es2018.esm.js +90 -29
  5. package/es2024.cjs.js +95 -34
  6. package/es2024.esm.js +94 -33
  7. package/esnext.cjs.js +95 -34
  8. package/esnext.esm.js +94 -33
  9. package/evergreen.esm.js +89 -28
  10. package/package.json +2 -2
  11. package/types/providers/DashProviderNew/baseDashProvider.d.ts +57 -0
  12. package/types/providers/DashProviderNew/consts.d.ts +3 -0
  13. package/types/providers/DashProviderNew/index.d.ts +2 -0
  14. package/types/providers/DashProviderNew/lib/ElementSizeManager.d.ts +19 -0
  15. package/types/providers/DashProviderNew/lib/LiveTextManager.d.ts +23 -0
  16. package/types/providers/DashProviderNew/lib/buffer.d.ts +117 -0
  17. package/types/providers/DashProviderNew/lib/fetcher.d.ts +59 -0
  18. package/types/providers/DashProviderNew/lib/parsers/ietf/index.d.ts +13 -0
  19. package/types/providers/DashProviderNew/lib/parsers/index.d.ts +3 -0
  20. package/types/providers/DashProviderNew/lib/parsers/mpd.d.ts +3 -0
  21. package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxModel.d.ts +20 -0
  22. package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxParser.d.ts +21 -0
  23. package/types/providers/DashProviderNew/lib/parsers/mpeg/BoxTypeEnum.d.ts +30 -0
  24. package/types/providers/DashProviderNew/lib/parsers/mpeg/box.d.ts +74 -0
  25. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/avc1.d.ts +8 -0
  26. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/equi.d.ts +21 -0
  27. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/ftyp.d.ts +17 -0
  28. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/index.d.ts +26 -0
  29. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mdat.d.ts +15 -0
  30. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mdia.d.ts +8 -0
  31. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mfhd.d.ts +11 -0
  32. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/minf.d.ts +8 -0
  33. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/moof.d.ts +8 -0
  34. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/moov.d.ts +8 -0
  35. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/mvhd.d.ts +35 -0
  36. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/prhd.d.ts +16 -0
  37. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/proj.d.ts +8 -0
  38. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/sidx.d.ts +48 -0
  39. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/st3d.d.ts +23 -0
  40. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/stbl.d.ts +8 -0
  41. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/stsd.d.ts +11 -0
  42. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/sv3d.d.ts +8 -0
  43. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tfdt.d.ts +17 -0
  44. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tfhd.d.ts +22 -0
  45. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/tkhd.d.ts +42 -0
  46. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/traf.d.ts +8 -0
  47. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/trak.d.ts +8 -0
  48. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/trun.d.ts +31 -0
  49. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/unknown.d.ts +6 -0
  50. package/types/providers/DashProviderNew/lib/parsers/mpeg/boxes/uuid.d.ts +11 -0
  51. package/types/providers/DashProviderNew/lib/parsers/mpeg/fullBox.d.ts +15 -0
  52. package/types/providers/DashProviderNew/lib/parsers/mpeg/isobmff.d.ts +12 -0
  53. package/types/providers/DashProviderNew/lib/parsers/webm/ebml.d.ts +76 -0
  54. package/types/providers/DashProviderNew/lib/parsers/webm/webm.d.ts +3 -0
  55. package/types/providers/DashProviderNew/lib/player.d.ts +92 -0
  56. package/types/providers/DashProviderNew/lib/sourceBufferTaskQueue.d.ts +19 -0
  57. package/types/providers/DashProviderNew/lib/types.d.ts +186 -0
  58. package/types/providers/DashProviderNew/lib/utils.d.ts +21 -0
  59. package/types/providers/DashProviderNew/newDashCmafLiveProvider.d.ts +8 -0
  60. package/types/providers/DashProviderNew/newDashProvider.d.ts +6 -0
  61. package/types/providers/utils/StallsManager.d.ts +18 -4
  62. package/types/utils/autoSelectTrack.d.ts +6 -3
  63. package/types/utils/qualityLimits.d.ts +3 -18
  64. 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,6 @@
1
+ import { Box } from '../../../../../../providers/DashProviderNew/lib/parsers/mpeg/box';
2
+ /**
3
+ * Any unrecognized boxes that is not registered in BoxFactory
4
+ */
5
+ export declare class UnknownBox extends Box {
6
+ }
@@ -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,3 @@
1
+ import { WebmInit, WebmParser } from '../../types';
2
+ export declare const parseInit: (view: DataView) => WebmInit;
3
+ export declare const parser: WebmParser;
@@ -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;