@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.
Files changed (130) hide show
  1. package/es2015.cjs.js +73 -27
  2. package/es2015.esm.js +72 -26
  3. package/es2018.cjs.js +73 -27
  4. package/es2018.esm.js +72 -26
  5. package/esnext.cjs.js +75 -29
  6. package/esnext.esm.js +73 -27
  7. package/evergreen.esm.js +73 -27
  8. package/package.json +7 -7
  9. package/types/enums/AndroidPreferredFormat.d.ts +8 -0
  10. package/types/enums/WebmCodecStrategy.d.ts +7 -0
  11. package/types/env.d.ts +1 -0
  12. package/types/index.d.ts +12 -0
  13. package/types/player/Player.d.ts +173 -0
  14. package/{index.d.ts → types/player/types.d.ts} +64 -391
  15. package/types/player/utils/optimisticPosition.d.ts +12 -0
  16. package/types/player/utils/selectContainer.d.ts +3 -0
  17. package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +31 -0
  18. package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +23 -0
  19. package/types/providers/ChromecastProvider/index.d.ts +33 -0
  20. package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +37 -0
  21. package/types/providers/DashLiveProvider/index.d.ts +2 -0
  22. package/types/providers/DashLiveProvider/types.d.ts +21 -0
  23. package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +25 -0
  24. package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +143 -0
  25. package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +33 -0
  26. package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +42 -0
  27. package/types/providers/DashProvider/baseDashProvider.d.ts +52 -0
  28. package/types/providers/DashProvider/consts.d.ts +1 -0
  29. package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +8 -0
  30. package/types/providers/DashProvider/dashProvider.d.ts +6 -0
  31. package/types/providers/DashProvider/index.d.ts +2 -0
  32. package/types/providers/DashProvider/lib/buffer.d.ts +103 -0
  33. package/types/providers/DashProvider/lib/fetcher.d.ts +51 -0
  34. package/types/providers/DashProvider/lib/parsers/mpd.d.ts +3 -0
  35. package/types/providers/DashProvider/lib/parsers/mpeg/BoxModel.d.ts +20 -0
  36. package/types/providers/DashProvider/lib/parsers/mpeg/BoxParser.d.ts +21 -0
  37. package/types/providers/DashProvider/lib/parsers/mpeg/BoxTypeEnum.d.ts +26 -0
  38. package/types/providers/DashProvider/lib/parsers/mpeg/box.d.ts +79 -0
  39. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/equi.d.ts +21 -0
  40. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/ftyp.d.ts +17 -0
  41. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/index.d.ts +22 -0
  42. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/mdat.d.ts +15 -0
  43. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/mdia.d.ts +7 -0
  44. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/mfhd.d.ts +11 -0
  45. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/minf.d.ts +7 -0
  46. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/moof.d.ts +7 -0
  47. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/moov.d.ts +7 -0
  48. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/prhd.d.ts +16 -0
  49. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/proj.d.ts +7 -0
  50. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/sidx.d.ts +48 -0
  51. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/st3d.d.ts +23 -0
  52. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/sv3d.d.ts +7 -0
  53. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/tfdt.d.ts +17 -0
  54. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/tfhd.d.ts +22 -0
  55. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/tkhd.d.ts +42 -0
  56. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/traf.d.ts +7 -0
  57. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/trak.d.ts +7 -0
  58. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/trun.d.ts +31 -0
  59. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/unknown.d.ts +6 -0
  60. package/types/providers/DashProvider/lib/parsers/mpeg/boxes/uuid.d.ts +6 -0
  61. package/types/providers/DashProvider/lib/parsers/mpeg/fullBox.d.ts +15 -0
  62. package/types/providers/DashProvider/lib/parsers/mpeg/isobmff.d.ts +12 -0
  63. package/types/providers/DashProvider/lib/parsers/webm/ebml.d.ts +76 -0
  64. package/types/providers/DashProvider/lib/parsers/webm/webm.d.ts +3 -0
  65. package/types/providers/DashProvider/lib/player.d.ts +75 -0
  66. package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +18 -0
  67. package/types/providers/DashProvider/lib/types.d.ts +156 -0
  68. package/types/providers/DashProvider/lib/utils.d.ts +14 -0
  69. package/types/providers/HlsJsProvider/index.d.ts +24 -0
  70. package/types/providers/HlsLiveProvider/index.d.ts +30 -0
  71. package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +3 -0
  72. package/types/providers/HlsProvider/index.d.ts +21 -0
  73. package/types/providers/HlsProvider/manifestDataExtractor.d.ts +21 -0
  74. package/types/providers/MpegProvider/index.d.ts +20 -0
  75. package/types/providers/ProviderContainer/index.d.ts +42 -0
  76. package/types/providers/ProviderContainer/types.d.ts +20 -0
  77. package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +20 -0
  78. package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +12 -0
  79. package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +188 -0
  80. package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +60 -0
  81. package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +9 -0
  82. package/types/providers/types.d.ts +83 -0
  83. package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +44 -0
  84. package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +30 -0
  85. package/types/providers/utils/HTMLVideoElement/clear.d.ts +1 -0
  86. package/types/providers/utils/HTMLVideoElement/destroy.d.ts +1 -0
  87. package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +7 -0
  88. package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -0
  89. package/types/providers/utils/HTMLVideoElement/pool.d.ts +2 -0
  90. package/types/providers/utils/HTMLVideoElement/surface.d.ts +2 -0
  91. package/types/providers/utils/LiveOffset/index.d.ts +14 -0
  92. package/types/providers/utils/LiveOffset/types.d.ts +10 -0
  93. package/types/providers/utils/addQuicParam.d.ts +2 -0
  94. package/types/providers/utils/extractConnectionHeaders.d.ts +6 -0
  95. package/types/providers/utils/generateLiveUrl.d.ts +9 -0
  96. package/types/providers/utils/okQualityStringToVideoQuality.d.ts +3 -0
  97. package/types/providers/utils/parseFps.d.ts +1 -0
  98. package/types/providers/utils/syncDesiredState.d.ts +12 -0
  99. package/types/providers/utils/syncPlaybackState.d.ts +4 -0
  100. package/types/utils/3d/Camera3D.d.ts +14 -0
  101. package/types/utils/3d/CameraRotationManager.d.ts +62 -0
  102. package/types/utils/3d/Scene3D.d.ts +132 -0
  103. package/types/utils/3d/types.d.ts +25 -0
  104. package/types/utils/StateMachine/StateMachine.d.ts +19 -0
  105. package/types/utils/StateMachine/types.d.ts +60 -0
  106. package/types/utils/StatefulIterator/index.d.ts +13 -0
  107. package/types/utils/ThroughputEstimator.d.ts +25 -0
  108. package/types/utils/addScript.d.ts +2 -0
  109. package/types/utils/autoSelectVideoTrack.d.ts +26 -0
  110. package/types/utils/buffer/getBufferedRangeForPosition.d.ts +3 -0
  111. package/types/utils/buffer/getForwardBufferDuration.d.ts +3 -0
  112. package/types/utils/buffer/getTotalBufferDuration.d.ts +3 -0
  113. package/types/utils/buffer/isPositionBuffered.d.ts +3 -0
  114. package/types/utils/changePlaybackRate.d.ts +2 -0
  115. package/types/utils/hostnameFromUrl.d.ts +2 -0
  116. package/types/utils/isInPiP.d.ts +1 -0
  117. package/types/utils/link.d.ts +2 -0
  118. package/types/utils/mediaSource.d.ts +8 -0
  119. package/types/utils/observeElementVisibility.d.ts +3 -0
  120. package/types/utils/playbackTelemetry.d.ts +12 -0
  121. package/types/utils/setStateWithSubscribe.d.ts +3 -0
  122. package/types/utils/smoothedValue/baseSmoothedValue.d.ts +18 -0
  123. package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +7 -0
  124. package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +10 -0
  125. package/types/utils/smoothedValue/smoothedValueFactory.d.ts +6 -0
  126. package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +8 -0
  127. package/types/utils/smoothedValue/types.d.ts +26 -0
  128. package/types/utils/smoothedValue/utils.d.ts +3 -0
  129. package/types/utils/tuningConfig.d.ts +164 -0
  130. 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,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class MediaBox extends Box(‘mdia’) {}
4
+ */
5
+ export declare class MdiaBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -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,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class MediaInformationBox extends Box(‘minf’) {}
4
+ */
5
+ export declare class MinfBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -0,0 +1,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class MovieFragmentBox extends Box(‘moof’) {}
4
+ */
5
+ export declare class MoofBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -0,0 +1,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class MovieBox extends Box(‘moov’) {}
4
+ */
5
+ export declare class MoovBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -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,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class Projection extends Box(‘proj’) {}
4
+ */
5
+ export declare class ProjBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -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,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class SphericalVideoBox extends Box(‘sv3d’) {}
4
+ */
5
+ export declare class Sv3dBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -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,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class TrackFragmentBox extends Box(‘traf’) { }
4
+ */
5
+ export declare class TrafBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -0,0 +1,7 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * aligned(8) class TrackBox extends Box(‘trak’) {}
4
+ */
5
+ export declare class TrakBox extends Box {
6
+ protected parseChildrenBoxes(): Box[];
7
+ }
@@ -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,6 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/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,6 @@
1
+ import { Box } from '../../../../../../providers/DashProvider/lib/parsers/mpeg/box';
2
+ /**
3
+ * TODO: in future this box will be needed to calculate real LL live delay
4
+ */
5
+ export declare class UuidBox extends Box {
6
+ }
@@ -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,3 @@
1
+ import { WebmInit, WebmParser } from '../../types';
2
+ export declare const parseInit: (view: DataView) => WebmInit;
3
+ export declare const parser: WebmParser;
@@ -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
+ }