@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
package/package.json CHANGED
@@ -1,39 +1,39 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.103",
3
+ "version": "2.0.104",
4
4
  "author": "vk.com",
5
5
  "description": "Videoplayer core library based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
7
7
  "license": "GPL-3.0",
8
8
  "main": "./esnext.cjs.js",
9
9
  "module": "./esnext.esm.js",
10
- "types": "./index.d.ts",
10
+ "types": "./types/index.d.ts",
11
11
  "type": "module",
12
12
  "exports": {
13
13
  ".": {
14
14
  "import": "./esnext.esm.js",
15
15
  "require": "./esnext.cjs.js",
16
- "types": "./index.d.ts"
16
+ "types": "./types/index.d.ts"
17
17
  },
18
18
  "./evergreen": {
19
19
  "import": "./evergreen.esm.js",
20
20
  "require": "./evergreen.cjs.js",
21
- "types": "./index.d.ts"
21
+ "types": "./types/index.d.ts"
22
22
  },
23
23
  "./esnext": {
24
24
  "import": "./esnext.esm.js",
25
25
  "require": "./esnext.cjs.js",
26
- "types": "./index.d.ts"
26
+ "types": "./types/index.d.ts"
27
27
  },
28
28
  "./es2018": {
29
29
  "import": "./es2018.esm.js",
30
30
  "require": "./es2018.cjs.js",
31
- "types": "./index.d.ts"
31
+ "types": "./types/index.d.ts"
32
32
  },
33
33
  "./es2015": {
34
34
  "import": "./es2015.esm.js",
35
35
  "require": "./es2015.cjs.js",
36
- "types": "./index.d.ts"
36
+ "types": "./types/index.d.ts"
37
37
  },
38
38
  "./evergreen.esm.js": "./evergeen.esm.js",
39
39
  "./esnext.esm.js": "./esnext.esm.js",
@@ -0,0 +1,8 @@
1
+ export declare enum AndroidPreferredFormat {
2
+ DASH = "dash",
3
+ HLS = "hls",
4
+ MPEG = "mpeg",
5
+ DASH_ANY_MPEG = "dash_any_mpeg",
6
+ DASH_ANY_WEBM = "dash_any_webm",
7
+ DASH_SEP = "dash_sep"
8
+ }
@@ -0,0 +1,7 @@
1
+ export declare enum WebmCodecStrategy {
2
+ VP9 = "vp9",
3
+ AV1 = "av1",
4
+ NONE = "none",
5
+ SMOOTH = "smooth",
6
+ POWER_EFFICIENT = "power_efficient"
7
+ }
package/types/env.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const VERSION: string;
@@ -0,0 +1,12 @@
1
+ import { VERSION } from './env';
2
+ import { VideoFormat, IMpegSource, IDashSource, IHLSSource, IDashURLSource, IHLSLiveSource, ISeekRequest, URLSource, RawSource, URLSourceWithSeek, Surface } from './player/types';
3
+ import Player from './player/Player';
4
+ import { IPlayer, PlaybackState, IPlayerInfo, IPlayerEvents, IConfig, ISources, ICueSettings, ChromecastState, HttpConnectionType, IExternalTextTrack, ITextTrack, PlaybackRate } from './player/types';
5
+ import type { IOptionalTuningConfig } from './utils/tuningConfig';
6
+ import type { ISubscription, IUnsubscriber, IEmitter, IObservable, IValueObservable, IValue, IOperator, IListener, ILogEntry, IRange, ExactVideoQuality } from '@vkontakte/videoplayer-shared';
7
+ import { Subscription, Observable, Subject, ValueSubject, VideoQuality } from '@vkontakte/videoplayer-shared';
8
+ /**
9
+ * @deprecated
10
+ */
11
+ declare const SDK_VERSION: string;
12
+ export { Player, IPlayer, PlaybackState, IPlayerInfo, IPlayerEvents, IConfig, IOptionalTuningConfig, ILogEntry, ISources, IExternalTextTrack, ITextTrack, ChromecastState, HttpConnectionType, Surface, Subscription, ISubscription, IUnsubscriber, IObservable, IEmitter, IValueObservable, IValue, IOperator, IListener, VideoFormat, IMpegSource, IDashSource, IDashURLSource, IHLSSource, IHLSLiveSource, URLSource, RawSource, URLSourceWithSeek, VideoQuality, ExactVideoQuality, Observable, Subject, ValueSubject, IRange, ISeekRequest, ICueSettings, VERSION, SDK_VERSION, PlaybackRate, };
@@ -0,0 +1,173 @@
1
+ import { IOptionalTuningConfig } from '../utils/tuningConfig';
2
+ import { IError, ILogEntry, Seconds, Subject, ValueSubject, QualityLimits, VideoQuality } from '@vkontakte/videoplayer-shared';
3
+ import { ChromecastState, HttpConnectionType, IAudioTrack, IConfig, ICueSettings, IExternalTextTrack, IPlayer, ISeekRequest, ISources, ITextTrack, PlaybackRate, PlaybackState, StartEnd, Surface, VideoFormat } from './types';
4
+ export default class Player implements IPlayer {
5
+ private subscription;
6
+ private domContainer;
7
+ private providerContainer?;
8
+ private chromecastInitializer;
9
+ private logger;
10
+ private abrLogger;
11
+ private config;
12
+ private tuning;
13
+ private throughputEstimator;
14
+ private isPlaybackStarted;
15
+ private initedAt;
16
+ private hasLiveOffsetByPaused;
17
+ private hasLiveOffsetByPausedTimer;
18
+ private desiredState;
19
+ info: {
20
+ playbackState$: ValueSubject<PlaybackState>;
21
+ position$: ValueSubject<number>;
22
+ duration$: ValueSubject<number>;
23
+ muted$: ValueSubject<boolean>;
24
+ volume$: ValueSubject<number>;
25
+ availableQualities$: ValueSubject<VideoQuality[]>;
26
+ availableQualitiesFps$: ValueSubject<Partial<Record<VideoQuality, number>>>;
27
+ availableAudioTracks$: ValueSubject<IAudioTrack[]>;
28
+ isAudioAvailable$: ValueSubject<boolean>;
29
+ currentQuality$: ValueSubject<VideoQuality | undefined>;
30
+ isAutoQualityEnabled$: ValueSubject<boolean>;
31
+ autoQualityLimitingAvailable$: ValueSubject<boolean>;
32
+ autoQualityLimits$: ValueSubject<QualityLimits>;
33
+ currentPlaybackRate$: ValueSubject<number>;
34
+ currentBuffer$: ValueSubject<StartEnd<number>>;
35
+ isBuffering$: ValueSubject<boolean>;
36
+ isStalled$: ValueSubject<boolean>;
37
+ isEnded$: ValueSubject<boolean>;
38
+ isLooped$: ValueSubject<boolean>;
39
+ isLive$: ValueSubject<boolean | undefined>;
40
+ canChangePlaybackSpeed$: ValueSubject<boolean | undefined>;
41
+ atLiveEdge$: ValueSubject<boolean | undefined>;
42
+ atLiveDurationEdge$: ValueSubject<boolean | undefined>;
43
+ liveTime$: ValueSubject<number | undefined>;
44
+ liveBufferTime$: ValueSubject<number | undefined>;
45
+ currentFormat$: ValueSubject<VideoFormat | undefined>;
46
+ availableTextTracks$: ValueSubject<ITextTrack[]>;
47
+ currentTextTrack$: ValueSubject<string | undefined>;
48
+ throughputEstimation$: ValueSubject<number | undefined>;
49
+ rttEstimation$: ValueSubject<number | undefined>;
50
+ videoBitrate$: ValueSubject<number | undefined>;
51
+ hostname$: ValueSubject<string | undefined>;
52
+ httpConnectionType$: ValueSubject<HttpConnectionType | undefined>;
53
+ httpConnectionReused$: ValueSubject<boolean | undefined>;
54
+ surface$: ValueSubject<Surface>;
55
+ chromecastState$: ValueSubject<ChromecastState>;
56
+ chromecastDeviceName$: ValueSubject<string | undefined>;
57
+ intrinsicVideoSize$: ValueSubject<{
58
+ width: number;
59
+ height: number;
60
+ } | undefined>;
61
+ availableSources$: ValueSubject<ISources | undefined>;
62
+ is3DVideo$: ValueSubject<boolean>;
63
+ currentVideoSegmentLength$: ValueSubject<number>;
64
+ currentAudioSegmentLength$: ValueSubject<number>;
65
+ };
66
+ events: {
67
+ inited$: Subject<void>;
68
+ ready$: Subject<void>;
69
+ started$: Subject<void>;
70
+ playing$: Subject<void>;
71
+ paused$: Subject<void>;
72
+ stopped$: Subject<void>;
73
+ willStart$: Subject<void>;
74
+ willResume$: Subject<void>;
75
+ willPause$: Subject<void>;
76
+ willStop$: Subject<void>;
77
+ willDestruct$: Subject<void>;
78
+ watchCoverageRecord$: Subject<StartEnd<number>>;
79
+ watchCoverageLive$: Subject<StartEnd<number>>;
80
+ managedError$: Subject<IError>;
81
+ fatalError$: Subject<IError>;
82
+ ended$: Subject<void>;
83
+ looped$: Subject<number>;
84
+ seeked$: Subject<void>;
85
+ willSeek$: Subject<ISeekRequest>;
86
+ firstBytes$: Subject<number>;
87
+ firstFrame$: Subject<number>;
88
+ canplay$: Subject<number>;
89
+ log$: Subject<ILogEntry>;
90
+ };
91
+ experimental: {
92
+ element$: ValueSubject<HTMLElement | undefined>;
93
+ tuningConfigName$: ValueSubject<string[]>;
94
+ enableDebugTelemetry$: ValueSubject<boolean>;
95
+ dumpTelemetry: (receiver: (value: Record<string, any>) => void) => void;
96
+ };
97
+ constructor(tuning?: IOptionalTuningConfig);
98
+ initVideo(config: IConfig): IPlayer;
99
+ destroy(): void;
100
+ prepare(): IPlayer;
101
+ play(): IPlayer;
102
+ pause(): IPlayer;
103
+ stop(): IPlayer;
104
+ seekTime(time: Seconds, forcePrecise?: boolean): IPlayer;
105
+ /**
106
+ * NOTE: Сейчас вызов `seekPercent` до получения `duration` не сработает.
107
+ * @param percent: number [0, 1];
108
+ */
109
+ seekPercent(percent: number): IPlayer;
110
+ setVolume(percent: number): IPlayer;
111
+ setMuted(isMuted: boolean): IPlayer;
112
+ setQuality(quality: VideoQuality): IPlayer;
113
+ setAutoQuality(enable: boolean): IPlayer;
114
+ setAutoQualityLimits(limits: QualityLimits): IPlayer;
115
+ setPlaybackRate(playbackRate: PlaybackRate): IPlayer;
116
+ setExternalTextTracks(tracks: Omit<IExternalTextTrack, 'type'>[]): IPlayer;
117
+ selectTextTrack(id: ITextTrack['id'] | undefined): IPlayer;
118
+ setTextTrackCueSettings(settings: ICueSettings): IPlayer;
119
+ setLooped(isLooped: boolean): IPlayer;
120
+ toggleChromecast(): void;
121
+ /**
122
+ * Starts 3D-camera constant rotation
123
+ * Base rotation speed is provided through the tuning config
124
+ *
125
+ * @param mx - camera X rotation speed multiplier
126
+ * @param my - camera Y rotation speed multiplier
127
+ *
128
+ * 1 - positive direction
129
+ * 0.5 - half speed in positive direction
130
+ * 0 - no rotation
131
+ * -1 negative direction
132
+ * -2 double speed in negative direction
133
+ *
134
+ * Limitations:
135
+ * When camera reaches angles 180 or -180 in vertical direction it stops.
136
+ * z-axis is frozen for now
137
+ *
138
+ * Set all zeroes to stop the camera rotation
139
+ * startCameraManualRotation(0, 0);
140
+ */
141
+ startCameraManualRotation(mx: number, my: number): this;
142
+ /**
143
+ * Rotates 3d-camera to given angles relative to current position
144
+ */
145
+ stopCameraManualRotation(immediate?: boolean): this;
146
+ /**
147
+ * Rotates 3d-camera to given angles relative to current position
148
+ * using mouse deltas and scene fov
149
+ */
150
+ moveCameraFocusPX(dxpx: number, dypx: number): this;
151
+ /**
152
+ * "Holds" camera so that it can not perform movement without manual control
153
+ */
154
+ holdCamera(): this;
155
+ /**
156
+ * "Releases" the camera so that it can move using its internal logic
157
+ */
158
+ releaseCamera(): this;
159
+ getExactTime(): Seconds;
160
+ getAllLogs(): ILogEntry[];
161
+ private getScene3D;
162
+ private setIntrinsicVideoSize;
163
+ private initDesiredStateSubscriptions;
164
+ private initProviderContainerSubscription;
165
+ private initChromecastSubscription;
166
+ private initStartingVideoTrack;
167
+ private setStartingVideoTrack;
168
+ private initLogs;
169
+ private initDebugTelemetry;
170
+ private initWakeLock;
171
+ private setVideoTrackIdByQuality;
172
+ private getActiveLiveDelay;
173
+ }