@vkontakte/videoplayer-core 2.0.155 → 2.0.156-dev.04ce2cd1.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 (185) hide show
  1. package/es2015.cjs +83 -136
  2. package/es2015.esm.js +77 -130
  3. package/es2018.cjs +77 -130
  4. package/es2018.esm.js +75 -128
  5. package/es2024.cjs +83 -136
  6. package/es2024.esm.js +81 -134
  7. package/esnext.cjs +83 -136
  8. package/esnext.esm.js +81 -134
  9. package/evergreen.esm.js +82 -135
  10. package/package.json +2 -2
  11. package/types/enums/AndroidPreferredFormat.d.ts +6 -6
  12. package/types/enums/IOSPreferredFormat.d.ts +2 -2
  13. package/types/enums/WebmCodecStrategy.d.ts +5 -5
  14. package/types/index.d.ts +16 -13
  15. package/types/player/Player.d.ts +219 -210
  16. package/types/player/types.d.ts +595 -591
  17. package/types/player/utils/optimisticPosition.d.ts +7 -7
  18. package/types/player/utils/selectContainer.d.ts +1 -1
  19. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts +107 -106
  20. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts +23 -23
  21. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts +34 -34
  22. package/types/providers/ChromecastPresentationApiProvider/ProgressTicker.d.ts +9 -9
  23. package/types/providers/ChromecastPresentationApiProvider/index.d.ts +3 -3
  24. package/types/providers/ChromecastPresentationApiProvider/types.d.ts +31 -31
  25. package/types/providers/ChromecastPresentationApiProvider/utils.d.ts +1 -1
  26. package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +22 -22
  27. package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +22 -22
  28. package/types/providers/ChromecastProvider/index.d.ts +23 -23
  29. package/types/providers/ChromecastProvider/types.d.ts +7 -7
  30. package/types/providers/ChromecastProvider/utils.d.ts +1 -1
  31. package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +33 -33
  32. package/types/providers/DashLiveProvider/index.d.ts +1 -1
  33. package/types/providers/DashLiveProvider/types.d.ts +17 -17
  34. package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +23 -23
  35. package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +149 -150
  36. package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +12 -30
  37. package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +19 -22
  38. package/types/providers/DashProvider/baseDashProvider.d.ts +57 -56
  39. package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +6 -6
  40. package/types/providers/DashProvider/dashProvider.d.ts +4 -4
  41. package/types/providers/DashProvider/index.d.ts +2 -2
  42. package/types/providers/DashProvider/lib/ElementSizeManager.d.ts +14 -14
  43. package/types/providers/DashProvider/lib/LiveTextManager.d.ts +21 -21
  44. package/types/providers/DashProvider/lib/buffer.d.ts +123 -122
  45. package/types/providers/DashProvider/lib/fetcher.d.ts +70 -69
  46. package/types/providers/DashProvider/lib/player.d.ts +109 -107
  47. package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +17 -17
  48. package/types/providers/DashProvider/lib/types.d.ts +20 -20
  49. package/types/providers/DashProvider/lib/utils.d.ts +4 -4
  50. package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +58 -57
  51. package/types/providers/DashProviderVirtual/consts.d.ts +2 -2
  52. package/types/providers/DashProviderVirtual/dashCmafLiveProvider.d.ts +8 -8
  53. package/types/providers/DashProviderVirtual/dashProvider.d.ts +6 -6
  54. package/types/providers/DashProviderVirtual/index.d.ts +2 -2
  55. package/types/providers/DashProviderVirtual/lib/ElementSizeManager.d.ts +15 -14
  56. package/types/providers/DashProviderVirtual/lib/LiveTextManager.d.ts +21 -21
  57. package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +17 -17
  58. package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +17 -17
  59. package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +39 -39
  60. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.d.ts +94 -92
  61. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.d.ts +19 -19
  62. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/liveVirtualBuffer.d.ts +25 -25
  63. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager.d.ts +19 -19
  64. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/virtualBufferFactory.d.ts +4 -4
  65. package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +68 -67
  66. package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +103 -100
  67. package/types/providers/DashProviderVirtual/lib/player/livePlayer.d.ts +34 -34
  68. package/types/providers/DashProviderVirtual/lib/player/player.d.ts +9 -9
  69. package/types/providers/DashProviderVirtual/lib/player/types.d.ts +13 -13
  70. package/types/providers/DashProviderVirtual/lib/types.d.ts +20 -20
  71. package/types/providers/DashProviderVirtual/lib/utils.d.ts +4 -4
  72. package/types/providers/HlsLiveProvider/LiveTextManager.d.ts +35 -35
  73. package/types/providers/HlsLiveProvider/index.d.ts +29 -28
  74. package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
  75. package/types/providers/HlsProvider/index.d.ts +19 -19
  76. package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
  77. package/types/providers/MpegProvider/index.d.ts +17 -17
  78. package/types/providers/ProviderContainer/index.d.ts +47 -45
  79. package/types/providers/ProviderContainer/types.d.ts +16 -16
  80. package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +9 -9
  81. package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +9 -8
  82. package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
  83. package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +58 -57
  84. package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +6 -6
  85. package/types/providers/types.d.ts +103 -102
  86. package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +40 -39
  87. package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +28 -28
  88. package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +5 -5
  89. package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -25
  90. package/types/providers/utils/HTMLVideoElement/pool.d.ts +5 -4
  91. package/types/providers/utils/LiveOffset/index.d.ts +12 -12
  92. package/types/providers/utils/LiveOffset/types.d.ts +8 -8
  93. package/types/providers/utils/StallsManager.d.ts +49 -49
  94. package/types/providers/utils/debug.d.ts +13 -12
  95. package/types/providers/utils/extractConnectionHeaders.d.ts +3 -3
  96. package/types/providers/utils/generateLiveUrl.d.ts +4 -4
  97. package/types/providers/utils/guessNetworkErrorCause.d.ts +1 -1
  98. package/types/providers/utils/mergeIntervals.d.ts +1 -1
  99. package/types/providers/utils/okQualityStringToVideoQuality.d.ts +1 -1
  100. package/types/providers/utils/parsers/ietf/index.d.ts +8 -8
  101. package/types/providers/utils/parsers/index.d.ts +1 -1
  102. package/types/providers/utils/parsers/mpd.d.ts +1 -1
  103. package/types/providers/utils/parsers/mpeg/BoxModel.d.ts +18 -17
  104. package/types/providers/utils/parsers/mpeg/BoxParser.d.ts +15 -15
  105. package/types/providers/utils/parsers/mpeg/BoxTypeEnum.d.ts +27 -27
  106. package/types/providers/utils/parsers/mpeg/box.d.ts +68 -68
  107. package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +5 -5
  108. package/types/providers/utils/parsers/mpeg/boxes/equi.d.ts +18 -18
  109. package/types/providers/utils/parsers/mpeg/boxes/ftyp.d.ts +14 -14
  110. package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +27 -26
  111. package/types/providers/utils/parsers/mpeg/boxes/mdat.d.ts +12 -12
  112. package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +5 -5
  113. package/types/providers/utils/parsers/mpeg/boxes/mfhd.d.ts +8 -8
  114. package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +5 -5
  115. package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +5 -5
  116. package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +5 -5
  117. package/types/providers/utils/parsers/mpeg/boxes/mvhd.d.ts +32 -32
  118. package/types/providers/utils/parsers/mpeg/boxes/prhd.d.ts +13 -13
  119. package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +5 -5
  120. package/types/providers/utils/parsers/mpeg/boxes/sidx.d.ts +43 -43
  121. package/types/providers/utils/parsers/mpeg/boxes/st3d.d.ts +16 -16
  122. package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +5 -5
  123. package/types/providers/utils/parsers/mpeg/boxes/stsd.d.ts +8 -8
  124. package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +5 -5
  125. package/types/providers/utils/parsers/mpeg/boxes/tfdt.d.ts +14 -14
  126. package/types/providers/utils/parsers/mpeg/boxes/tfhd.d.ts +19 -19
  127. package/types/providers/utils/parsers/mpeg/boxes/tkhd.d.ts +39 -39
  128. package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +5 -5
  129. package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +5 -5
  130. package/types/providers/utils/parsers/mpeg/boxes/trun.d.ts +28 -28
  131. package/types/providers/utils/parsers/mpeg/boxes/unknown.d.ts +4 -5
  132. package/types/providers/utils/parsers/mpeg/boxes/uuid.d.ts +10 -10
  133. package/types/providers/utils/parsers/mpeg/fullBox.d.ts +12 -12
  134. package/types/providers/utils/parsers/mpeg/isobmff.d.ts +7 -7
  135. package/types/providers/utils/parsers/types.d.ts +137 -139
  136. package/types/providers/utils/parsers/webm/ebml.d.ts +62 -62
  137. package/types/providers/utils/parsers/webm/webm.d.ts +1 -1
  138. package/types/providers/utils/restorePlaybackRateInSafari.d.ts +17 -17
  139. package/types/providers/utils/syncDesiredState.d.ts +10 -10
  140. package/types/providers/utils/syncPlaybackState.d.ts +2 -2
  141. package/types/providers/utils/videoStreamRepresentaionsFilter.d.ts +2 -2
  142. package/types/utils/3d/Camera3D.d.ts +11 -11
  143. package/types/utils/3d/CameraRotationManager.d.ts +59 -59
  144. package/types/utils/3d/Scene3D.d.ts +129 -129
  145. package/types/utils/3d/types.d.ts +14 -14
  146. package/types/utils/ClientChecker/ClientChecker.d.ts +19 -19
  147. package/types/utils/ClientChecker/index.d.ts +2 -2
  148. package/types/utils/ClientChecker/services/AudioChecker.d.ts +7 -7
  149. package/types/utils/ClientChecker/services/BrowserChecker.d.ts +36 -36
  150. package/types/utils/ClientChecker/services/DeviceChecker.d.ts +38 -38
  151. package/types/utils/ClientChecker/services/DisplayChecker.d.ts +20 -20
  152. package/types/utils/ClientChecker/services/VideoChecker.d.ts +35 -35
  153. package/types/utils/ClientChecker/types/checker.d.ts +1 -1
  154. package/types/utils/ClientChecker/types/currentClientBrowser.d.ts +10 -10
  155. package/types/utils/ClientChecker/types/currentClientDevice.d.ts +8 -8
  156. package/types/utils/ClientChecker/types/userAgentData.d.ts +21 -21
  157. package/types/utils/StateMachine/StateMachine.d.ts +17 -17
  158. package/types/utils/StateMachine/types.d.ts +56 -56
  159. package/types/utils/StatefulIterator/index.d.ts +13 -13
  160. package/types/utils/ThroughputEstimator.d.ts +22 -22
  161. package/types/utils/VolumeMultiplierManager/VolumeMultiplierManager.d.ts +20 -20
  162. package/types/utils/VolumeMultiplierManager/index.d.ts +1 -1
  163. package/types/utils/autoSelectTrack.d.ts +28 -27
  164. package/types/utils/buffer/createTimeRanges.d.ts +2 -1
  165. package/types/utils/buffer/getBufferedRangeForPosition.d.ts +2 -2
  166. package/types/utils/buffer/getForwardBufferDuration.d.ts +1 -1
  167. package/types/utils/buffer/getTotalBufferDuration.d.ts +1 -1
  168. package/types/utils/buffer/isPositionBuffered.d.ts +1 -1
  169. package/types/utils/buffer/isSourceBufferValid.d.ts +1 -1
  170. package/types/utils/changePlaybackRate.d.ts +1 -1
  171. package/types/utils/decodingInfoLogger.d.ts +1 -1
  172. package/types/utils/mediaSource.d.ts +1 -5
  173. package/types/utils/observeElementVisibility.d.ts +1 -1
  174. package/types/utils/playbackTelemetry.d.ts +4 -4
  175. package/types/utils/playerOptions.d.ts +3 -3
  176. package/types/utils/qualityLimits.d.ts +15 -14
  177. package/types/utils/setStateWithSubscribe.d.ts +6 -3
  178. package/types/utils/smoothedValue/baseSmoothedValue.d.ts +16 -16
  179. package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +5 -5
  180. package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +8 -8
  181. package/types/utils/smoothedValue/smoothedValueFactory.d.ts +4 -4
  182. package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +6 -6
  183. package/types/utils/smoothedValue/types.d.ts +16 -16
  184. package/types/utils/tuningConfig.d.ts +304 -287
  185. package/types/utils/videoFormat.d.ts +1 -1
@@ -1,25 +1,25 @@
1
- import { IProvider } from '../types';
2
- import { IParams } from './types';
1
+ import type { IProvider } from "../types";
2
+ import type { IParams } from "./types";
3
3
  export default class ChromecastProvider implements IProvider {
4
- private subscription;
5
- private loadMediaTimeoutSubscription;
6
- private videoState;
7
- private params;
8
- private log;
9
- constructor(params: IParams);
10
- destroy(): void;
11
- private subscribe;
12
- private restoreSession;
13
- private prepare;
14
- private handleRemotePause;
15
- private handleRemotePlay;
16
- private handleRemoteReady;
17
- private handleRemoteStop;
18
- private handleRemoteVolumeChange;
19
- private seek;
20
- private stop;
21
- private createLoadRequest;
22
- private loadMedia;
23
- private logRemoteEvent;
24
- private syncPlayback;
4
+ private subscription;
5
+ private loadMediaTimeoutSubscription;
6
+ private videoState;
7
+ private params;
8
+ private log;
9
+ constructor(params: IParams);
10
+ destroy(): void;
11
+ private subscribe;
12
+ private restoreSession;
13
+ private prepare;
14
+ private handleRemotePause;
15
+ private handleRemotePlay;
16
+ private handleRemoteReady;
17
+ private handleRemoteStop;
18
+ private handleRemoteVolumeChange;
19
+ private seek;
20
+ private stop;
21
+ private createLoadRequest;
22
+ private loadMedia;
23
+ private logRemoteEvent;
24
+ private syncPlayback;
25
25
  }
@@ -1,8 +1,8 @@
1
- import { IMetadata, ISources, VideoFormat } from '../../player/types';
2
- import { IProviderParams } from '../types';
3
- import { IChromecastConnection } from './ChromecastInitializer/types';
4
- export interface IParams extends IProviderParams<ISources> {
5
- meta: IMetadata;
6
- format: VideoFormat;
7
- connection: IChromecastConnection;
1
+ import type { IMetadata, ISources, VideoFormat } from "../../player/types";
2
+ import type { IProviderParams } from "../types";
3
+ import type { IChromecastConnection } from "./ChromecastInitializer/types";
4
+ export interface IParams extends Omit<IProviderParams<ISources>, "skipVideoElVolumeSync$"> {
5
+ meta: IMetadata;
6
+ format: VideoFormat;
7
+ connection: IChromecastConnection;
8
8
  }
@@ -1,2 +1,2 @@
1
- import { IParams } from './types';
1
+ import type { IParams } from "./types";
2
2
  export declare const createMediaInfo: (params: Pick<IParams, "meta" | "format" | "output" | "source">) => chrome.cast.media.MediaInfo;
@@ -1,37 +1,37 @@
1
- import { IDashURLSource } from '../../player/types';
2
- import { IProvider, IProviderParams } from '../../providers/types';
3
- import { Milliseconds } from '@vkontakte/videoplayer-shared';
1
+ import type { IDashURLSource } from "../../player/types";
2
+ import type { IProvider, IProviderParams } from "../types";
3
+ import type { Milliseconds } from "@vkontakte/videoplayer-shared";
4
4
  type Params = IProviderParams<IDashURLSource> & {
5
- config: {
6
- maxPausedTime: Milliseconds;
7
- chunkDuration: number;
8
- maxParallelRequests: number;
9
- };
5
+ config: {
6
+ maxPausedTime: Milliseconds;
7
+ chunkDuration: number;
8
+ maxParallelRequests: number;
9
+ };
10
10
  };
11
11
  export default class DashLiveProvider implements IProvider {
12
- private subscription;
13
- private video;
14
- private videoState;
15
- private dash;
16
- private representations$;
17
- private textTracksManager;
18
- private droppedFramesManager;
19
- /**
20
- * Максимальное время перемотки назад из лайва в миллисекундах
21
- */
22
- private maxSeekBackTime$;
23
- private zeroTime$;
24
- private liveOffset;
25
- private log;
26
- private params;
27
- constructor(params: Params);
28
- destroy(): void;
29
- private createLiveDashPlayer;
30
- private prepare;
31
- private setVideoTrack;
32
- private setAutoQuality;
33
- private seek;
34
- private _dashCb;
35
- private syncPlayback;
12
+ private subscription;
13
+ private volumeSubscription;
14
+ private video;
15
+ private videoState;
16
+ private dash;
17
+ private representations$;
18
+ private textTracksManager;
19
+ private droppedFramesManager;
20
+ /**
21
+ * Максимальное время перемотки назад из лайва в миллисекундах
22
+ */
23
+ private maxSeekBackTime$;
24
+ private zeroTime$;
25
+ private liveOffset;
26
+ private log;
27
+ private params;
28
+ constructor(params: Params);
29
+ destroy(): void;
30
+ private createLiveDashPlayer;
31
+ private prepare;
32
+ private setVideoTrack;
33
+ private setAutoQuality;
34
+ private seek;
35
+ private _dashCb;
36
+ private syncPlayback;
36
37
  }
37
- export {};
@@ -1,2 +1,2 @@
1
- import DashLiveProvider from './DashLiveProvider';
1
+ import DashLiveProvider from "./DashLiveProvider";
2
2
  export default DashLiveProvider;
@@ -1,21 +1,21 @@
1
- import { bps } from '@vkontakte/videoplayer-shared';
1
+ import type { bps } from "@vkontakte/videoplayer-shared";
2
2
  export interface IRepresentation {
3
- bitrate: bps;
4
- codecs: string;
5
- fragUrlTemplate: string;
6
- headerUrl: string;
7
- index: number;
8
- jidxUrl: string;
9
- name: string;
10
- video: {
11
- height: number;
12
- width: number;
13
- };
3
+ bitrate: bps;
4
+ codecs: string;
5
+ fragUrlTemplate: string;
6
+ headerUrl: string;
7
+ index: number;
8
+ jidxUrl: string;
9
+ name: string;
10
+ video: {
11
+ height: number;
12
+ width: number;
13
+ };
14
14
  }
15
15
  export declare enum State {
16
- STOPPED = "stopped",
17
- MANIFEST_READY = "manifest_ready",
18
- READY = "ready",
19
- PLAYING = "playing",
20
- PAUSED = "paused"
16
+ STOPPED = "stopped",
17
+ MANIFEST_READY = "manifest_ready",
18
+ READY = "ready",
19
+ PLAYING = "playing",
20
+ PAUSED = "paused"
21
21
  }
@@ -1,25 +1,25 @@
1
1
  export default class FilesFetcher {
2
- private pendingQueue;
3
- private activeRequests;
4
- private completeRequests;
5
- private averageSegmentDuration;
6
- private lastPrefetchStart;
7
- private throttleTimeout;
8
- private RETRY_COUNT;
9
- private TIMEOUT;
10
- private BITRATE_ESTIMATOR;
11
- private MAX_PARALLEL_REQUESTS;
12
- private logger;
13
- constructor(RETRY_COUNT: number, TIMEOUT: number, BITRATE_ESTIMATOR: any, MAX_PARALLEL_REQUESTS: number, logger: (...args: any[]) => void);
14
- private limitCompleteCount;
15
- private _sendRequest;
16
- private _getParallelRequestCount;
17
- private _getPrefetchDelay;
18
- private _canSendPending;
19
- private _sendPending;
20
- private _removeFromActive;
21
- abortAll(): void;
22
- requestData(url: string, cb: (data: any, downloadTime: number) => void, errorCB: (arg: any) => void, retryCB: (arg: any) => void): Record<string, any>;
23
- prefetch(url: string): void;
24
- optimizeForSegDuration(duration: number): void;
2
+ private pendingQueue;
3
+ private activeRequests;
4
+ private completeRequests;
5
+ private averageSegmentDuration;
6
+ private lastPrefetchStart;
7
+ private throttleTimeout;
8
+ private RETRY_COUNT;
9
+ private TIMEOUT;
10
+ private BITRATE_ESTIMATOR;
11
+ private MAX_PARALLEL_REQUESTS;
12
+ private logger;
13
+ constructor(RETRY_COUNT: number, TIMEOUT: number, BITRATE_ESTIMATOR: any, MAX_PARALLEL_REQUESTS: number, logger: (...args: any[]) => void);
14
+ private limitCompleteCount;
15
+ private _sendRequest;
16
+ private _getParallelRequestCount;
17
+ private _getPrefetchDelay;
18
+ private _canSendPending;
19
+ private _sendPending;
20
+ private _removeFromActive;
21
+ abortAll(): void;
22
+ requestData(url: string, cb: (data: any, downloadTime: number) => void, errorCB: (arg: any) => void, retryCB: (arg: any) => void): Record<string, any>;
23
+ prefetch(url: string): void;
24
+ optimizeForSegDuration(duration: number): void;
25
25
  }
@@ -1,156 +1,155 @@
1
- import { ILiveOffset } from '../../../providers/utils/LiveOffset/types';
2
- import { IStateMachine } from '../../../utils/StateMachine/types';
3
- import { Milliseconds } from '@vkontakte/videoplayer-shared';
4
- import { IRepresentation, State } from '../types';
5
- import { Subject } from '@vkontakte/videoplayer-shared';
6
- import { PlaybackState } from '../../../player/types';
1
+ import { ILiveOffset } from "../../utils/LiveOffset/types";
2
+ import { IStateMachine } from "../../../utils/StateMachine/types";
3
+ import { Milliseconds } from "@vkontakte/videoplayer-shared";
4
+ import { IRepresentation, State } from "../types";
5
+ import { Subject } from "@vkontakte/videoplayer-shared";
6
+ import { PlaybackState } from "../../../player/types";
7
7
  interface IParams {
8
- videoElement: HTMLVideoElement;
9
- videoState: IStateMachine<State>;
10
- playbackState: IStateMachine<PlaybackState>;
11
- liveOffset: ILiveOffset;
12
- playerCallback: (...args: any) => void;
13
- config: {
14
- minBuffer: Milliseconds;
15
- lowLatencyMinBuffer: Milliseconds;
16
- minBufferSegments: number;
17
- lowLatencyMinBufferSegments: number;
18
- maxParallelRequests: number;
19
- isLiveCatchUpMode: boolean;
20
- manifestRetryInterval: number;
21
- manifestRetryMaxInterval: number;
22
- manifestRetryMaxCount: number;
23
- useInvalidBufferFix: boolean;
24
- };
25
- logger: (...args: any[]) => void;
8
+ videoElement: HTMLVideoElement;
9
+ videoState: IStateMachine<State>;
10
+ playbackState: IStateMachine<PlaybackState>;
11
+ liveOffset: ILiveOffset;
12
+ playerCallback: (...args: any) => void;
13
+ config: {
14
+ minBuffer: Milliseconds;
15
+ lowLatencyMinBuffer: Milliseconds;
16
+ minBufferSegments: number;
17
+ lowLatencyMinBufferSegments: number;
18
+ maxParallelRequests: number;
19
+ isLiveCatchUpMode: boolean;
20
+ manifestRetryInterval: number;
21
+ manifestRetryMaxInterval: number;
22
+ manifestRetryMaxCount: number;
23
+ useInvalidBufferFix: boolean;
24
+ };
25
+ logger: (...args: any[]) => void;
26
26
  }
27
27
  type AutoQualityLimits = {
28
- max?: number;
29
- min?: number;
28
+ max?: number;
29
+ min?: number;
30
30
  };
31
31
  export default class LiveDashPlayer {
32
- private paused;
33
- private autoQuality;
34
- private autoQualityLimits;
35
- private buffering;
36
- private destroyed;
37
- private videoPlayStarted;
38
- private lowLatency;
39
- private rep?;
40
- private bitrate;
41
- private manifest;
42
- private bitrateSwitcher?;
43
- private filesFetcher?;
44
- private sourceBuffer?;
45
- private mediaSource?;
46
- private currentManifestEntry?;
47
- private manifestRequest?;
48
- private manifestRefetchTimer?;
49
- private bufferStates;
50
- private downloadRate?;
51
- private sourceJitter;
52
- private chunkRateEstimator;
53
- private manifestUrl;
54
- private urlResolver;
55
- /**
56
- * Флаг указывает, что ожидаем появление первых данных в буфере, после смены источника.
57
- */
58
- private waitingForFirstBufferAfterSrcChange;
59
- private params;
60
- soundProhibitedEvent$: Subject<void>;
61
- constructor(params: IParams);
62
- attachSource(manifestUrl: string): void;
63
- /**
64
- * switch to auto quality
65
- */
66
- setAutoQualityEnabled(enabled: boolean): void;
67
- setAutoQualityLimits(limits: AutoQualityLimits | undefined): void;
68
- /**
69
- * switch quality by name
70
- */
71
- switchByName(name: string): void;
72
- /**
73
- * seek to actual video position
74
- */
75
- catchUp(): void;
76
- stop(): void;
77
- pause(): void;
78
- play(): void;
79
- startPlay(targetQ: IRepresentation, autoQuality: boolean): void;
80
- /**
81
- * destroy player
82
- */
83
- destroy(): void;
84
- reinit(newManifestUrl: string): void;
85
- /**
86
- * if all retries fail...
87
- */
88
- private _handleNetworkError;
89
- /**
90
- * Retry request
91
- */
92
- private _retryCallback;
93
- /**
94
- * how many seconds are there in the buffer
95
- */
96
- private _getBufferSizeSec;
97
- /**
98
- * send buffering notification to player
99
- */
100
- private _notifyBuffering;
101
- /**
102
- * initialize video tag, add necessary event listeners
103
- * @private
104
- */
105
- private _initVideo;
106
- /**
107
- * there may be small gaps of several milliseconds when switching quality
108
- * we jump over these gaps here
109
- */
110
- private _fixupStall;
111
- /**
112
- * return best quality for rate
113
- */
114
- private _selectQuality;
115
- private shouldPlay;
116
- /**
117
- * set video source
118
- */
119
- private _setVideoSrc;
120
- /**
121
- * initialize player with target quality
122
- */
123
- private _initPlayerWith;
124
- /**
125
- * represents specific quality stream
126
- */
127
- private _representation;
128
- /**
129
- * switch to quality
130
- * TODO: Если новое качество выше старого – переключиться сразу. Если хуже, доиграть буфер
131
- */
132
- private _switchToQuality;
133
- /**
134
- * check if quality is available
135
- */
136
- private _qualityAvailable;
137
- /**
138
- * analyze bitrate data and switch qualities accordingly
139
- */
140
- private _initBitrateSwitcher;
141
- /**
142
- * load and parse manifest file
143
- */
144
- private _fetchManifest;
145
- private _playVideoElement;
146
- /**
147
- * update internal state when manifest was received from remote
148
- */
149
- private _handleManifestUpdate;
150
- /**
151
- * schedule manifest update after delay
152
- */
153
- private _refetchManifest;
154
- private _initManifest;
32
+ private paused;
33
+ private autoQuality;
34
+ private autoQualityLimits;
35
+ private buffering;
36
+ private destroyed;
37
+ private videoPlayStarted;
38
+ private lowLatency;
39
+ private rep?;
40
+ private bitrate;
41
+ private manifest;
42
+ private bitrateSwitcher?;
43
+ private filesFetcher?;
44
+ private sourceBuffer?;
45
+ private mediaSource?;
46
+ private currentManifestEntry?;
47
+ private manifestRequest?;
48
+ private manifestRefetchTimer?;
49
+ private bufferStates;
50
+ private downloadRate?;
51
+ private sourceJitter;
52
+ private chunkRateEstimator;
53
+ private manifestUrl;
54
+ private urlResolver;
55
+ /**
56
+ * Флаг указывает, что ожидаем появление первых данных в буфере, после смены источника.
57
+ */
58
+ private waitingForFirstBufferAfterSrcChange;
59
+ private params;
60
+ soundProhibitedEvent$: Subject<void>;
61
+ constructor(params: IParams);
62
+ attachSource(manifestUrl: string): void;
63
+ /**
64
+ * switch to auto quality
65
+ */
66
+ setAutoQualityEnabled(enabled: boolean): void;
67
+ setAutoQualityLimits(limits: AutoQualityLimits | undefined): void;
68
+ /**
69
+ * switch quality by name
70
+ */
71
+ switchByName(name: string): void;
72
+ /**
73
+ * seek to actual video position
74
+ */
75
+ catchUp(): void;
76
+ stop(): void;
77
+ pause(): void;
78
+ play(): void;
79
+ startPlay(targetQ: IRepresentation, autoQuality: boolean): void;
80
+ /**
81
+ * destroy player
82
+ */
83
+ destroy(): void;
84
+ reinit(newManifestUrl: string): void;
85
+ /**
86
+ * if all retries fail...
87
+ */
88
+ private _handleNetworkError;
89
+ /**
90
+ * Retry request
91
+ */
92
+ private _retryCallback;
93
+ /**
94
+ * how many seconds are there in the buffer
95
+ */
96
+ private _getBufferSizeSec;
97
+ /**
98
+ * send buffering notification to player
99
+ */
100
+ private _notifyBuffering;
101
+ /**
102
+ * initialize video tag, add necessary event listeners
103
+ * @private
104
+ */
105
+ private _initVideo;
106
+ /**
107
+ * there may be small gaps of several milliseconds when switching quality
108
+ * we jump over these gaps here
109
+ */
110
+ private _fixupStall;
111
+ /**
112
+ * return best quality for rate
113
+ */
114
+ private _selectQuality;
115
+ private shouldPlay;
116
+ /**
117
+ * set video source
118
+ */
119
+ private _setVideoSrc;
120
+ /**
121
+ * initialize player with target quality
122
+ */
123
+ private _initPlayerWith;
124
+ /**
125
+ * represents specific quality stream
126
+ */
127
+ private _representation;
128
+ /**
129
+ * switch to quality
130
+ * TODO: Если новое качество выше старого – переключиться сразу. Если хуже, доиграть буфер
131
+ */
132
+ private _switchToQuality;
133
+ /**
134
+ * check if quality is available
135
+ */
136
+ private _qualityAvailable;
137
+ /**
138
+ * analyze bitrate data and switch qualities accordingly
139
+ */
140
+ private _initBitrateSwitcher;
141
+ /**
142
+ * load and parse manifest file
143
+ */
144
+ private _fetchManifest;
145
+ private _playVideoElement;
146
+ /**
147
+ * update internal state when manifest was received from remote
148
+ */
149
+ private _handleManifestUpdate;
150
+ /**
151
+ * schedule manifest update after delay
152
+ */
153
+ private _refetchManifest;
154
+ private _initManifest;
155
155
  }
156
- export {};
@@ -1,33 +1,15 @@
1
- /**
2
- * Estimate total throughput by counting bytes received over time interval
3
- * The estimator receives reports of downloaded chunk sizes and time ranges
4
- * and calculates total bandwidth accounting for chunks downloaded in parallel
5
- * and network idle time
6
- *
7
- * For example:
8
- * chunk1: [___1000___]
9
- * chunk2: [_____900_____]
10
- * chunk3: [___700___]
11
- * time: 0.2 0.3 0.4 0.5 1.0 1.1
12
- * --------------------------------------------------->
13
- *
14
- * total size = 1000 + 900 + 700 = 2600
15
- * active time = (1.1 - 1.0) + (0.5 - 0.2) = 0.4
16
- * throughput = total size / active time = 6500 bytes/sec
17
- */
18
1
  type ILogger = (...args: any[]) => void;
19
2
  export default class ThroughputEstimator {
20
- private intervals;
21
- private currentRate;
22
- private logger;
23
- constructor(logger: ILogger);
24
- private _updateRate;
25
- private _createInterval;
26
- private _doMergeIntervals;
27
- private _mergeIntervals;
28
- private _flushIntervals;
29
- private _joinIntervals;
30
- addInterval(timeStart: number, timeEnd: number, bytes: number): boolean;
31
- getBitRate(): number;
3
+ private intervals;
4
+ private currentRate;
5
+ private logger;
6
+ constructor(logger: ILogger);
7
+ private _updateRate;
8
+ private _createInterval;
9
+ private _doMergeIntervals;
10
+ private _mergeIntervals;
11
+ private _flushIntervals;
12
+ private _joinIntervals;
13
+ addInterval(timeStart: number, timeEnd: number, bytes: number): boolean;
14
+ getBitRate(): number;
32
15
  }
33
- export {};
@@ -1,42 +1,39 @@
1
1
  export declare function getTimeMilliseconds(): number;
2
2
  export declare function elapsedSince(ts: number): number;
3
3
  /**
4
- * url resolver function
5
- * constructs full path if URL is relative to manifest
6
- * optionally adds random url parameter to bypass browser cache
7
- */
4
+ * url resolver function
5
+ * constructs full path if URL is relative to manifest
6
+ * optionally adds random url parameter to bypass browser cache
7
+ */
8
8
  export declare function urlResolver(homeUrl: string): {
9
- resolve: (url: string, nocache: boolean, lowLatency?: boolean) => string;
9
+ resolve: (url: string, nocache: boolean, lowLatency?: boolean) => string;
10
10
  };
11
11
  /**
12
- * event listener helper - listen just once, then remove listener
13
- */
12
+ * event listener helper - listen just once, then remove listener
13
+ */
14
14
  export declare function listenOnce(element: HTMLElement, eventName: string, listener: (...args: any[]) => void): void;
15
15
  interface IRequestDataResult {
16
- withBitrateReporting: IWithBitrateReporting;
17
- withParallel: IWithParallel;
18
- withJSONResponse: IWithJSONResponse;
19
- withRetryCount: IWithRetryCount;
20
- withRetryInterval: IWithRetryInterval;
21
- withTimeout: IWithTimeout;
22
- withFinally: IWithFinally;
23
- send: ISend;
24
- abort: () => void;
16
+ withBitrateReporting: IWithBitrateReporting;
17
+ withParallel: IWithParallel;
18
+ withJSONResponse: IWithJSONResponse;
19
+ withRetryCount: IWithRetryCount;
20
+ withRetryInterval: IWithRetryInterval;
21
+ withTimeout: IWithTimeout;
22
+ withFinally: IWithFinally;
23
+ send: ISend;
24
+ abort: () => void;
25
25
  }
26
26
  type IWithBitrateReporting = IBuilderMethod<[listener: any]>;
27
27
  type IWithParallel = IBuilderMethod<[parallel: any]>;
28
28
  type IWithJSONResponse = IBuilderMethod<[]>;
29
29
  type IWithRetryCount = IBuilderMethod<[count: number]>;
30
- type IWithRetryInterval = IBuilderMethod<[
31
- interval: number | undefined,
32
- maxInterval: number | undefined
33
- ]>;
30
+ type IWithRetryInterval = IBuilderMethod<[interval: number | undefined, maxInterval: number | undefined]>;
34
31
  type IWithTimeout = IBuilderMethod<[timeoutMs: number]>;
35
32
  type IWithFinally = IBuilderMethod<[final: () => void]>;
36
33
  type ISend = IBuilderMethod<[]>;
37
34
  type IBuilderMethod<TParams extends any[]> = (...params: TParams) => IRequestDataResult;
38
35
  /**
39
- * fetch data helper with retry and timeout handler
40
- */
36
+ * fetch data helper with retry and timeout handler
37
+ */
41
38
  export declare function requestData(url: string, cb: (response: any) => void, errorCB: () => void, retryCB: () => void): IRequestDataResult;
42
39
  export {};