@vkontakte/videoplayer-core 2.0.153-dev.44065e09.0 → 2.0.153-dev.5183c3ef8.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 (186) hide show
  1. package/esnext.esm.js +70 -124
  2. package/package.json +3 -2
  3. package/types/enums/AndroidPreferredFormat.d.ts +6 -6
  4. package/types/enums/IOSPreferredFormat.d.ts +2 -2
  5. package/types/enums/WebmCodecStrategy.d.ts +5 -5
  6. package/types/index.d.ts +16 -13
  7. package/types/player/Player.d.ts +217 -209
  8. package/types/player/types.d.ts +589 -589
  9. package/types/player/utils/optimisticPosition.d.ts +7 -7
  10. package/types/player/utils/selectContainer.d.ts +1 -1
  11. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts +106 -106
  12. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts +23 -23
  13. package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts +34 -34
  14. package/types/providers/ChromecastPresentationApiProvider/ProgressTicker.d.ts +9 -9
  15. package/types/providers/ChromecastPresentationApiProvider/index.d.ts +3 -3
  16. package/types/providers/ChromecastPresentationApiProvider/types.d.ts +31 -31
  17. package/types/providers/ChromecastPresentationApiProvider/utils.d.ts +1 -1
  18. package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +22 -22
  19. package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +22 -22
  20. package/types/providers/ChromecastProvider/index.d.ts +23 -23
  21. package/types/providers/ChromecastProvider/types.d.ts +6 -6
  22. package/types/providers/ChromecastProvider/utils.d.ts +1 -1
  23. package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +32 -33
  24. package/types/providers/DashLiveProvider/index.d.ts +1 -1
  25. package/types/providers/DashLiveProvider/types.d.ts +17 -17
  26. package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +23 -23
  27. package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +149 -150
  28. package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +12 -30
  29. package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +19 -22
  30. package/types/providers/DashProvider/baseDashProvider.d.ts +56 -56
  31. package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +6 -6
  32. package/types/providers/DashProvider/dashProvider.d.ts +4 -4
  33. package/types/providers/DashProvider/index.d.ts +2 -2
  34. package/types/providers/DashProvider/lib/ElementSizeManager.d.ts +14 -14
  35. package/types/providers/DashProvider/lib/LiveTextManager.d.ts +21 -21
  36. package/types/providers/DashProvider/lib/buffer.d.ts +123 -122
  37. package/types/providers/DashProvider/lib/fetcher.d.ts +70 -70
  38. package/types/providers/DashProvider/lib/player.d.ts +109 -107
  39. package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +17 -17
  40. package/types/providers/DashProvider/lib/types.d.ts +20 -20
  41. package/types/providers/DashProvider/lib/utils.d.ts +4 -4
  42. package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +57 -57
  43. package/types/providers/DashProviderVirtual/consts.d.ts +2 -2
  44. package/types/providers/DashProviderVirtual/dashCmafLiveProvider.d.ts +8 -8
  45. package/types/providers/DashProviderVirtual/dashProvider.d.ts +6 -6
  46. package/types/providers/DashProviderVirtual/index.d.ts +2 -2
  47. package/types/providers/DashProviderVirtual/lib/ElementSizeManager.d.ts +15 -14
  48. package/types/providers/DashProviderVirtual/lib/LiveTextManager.d.ts +21 -21
  49. package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +17 -17
  50. package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +17 -17
  51. package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +39 -39
  52. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.d.ts +94 -92
  53. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.d.ts +19 -19
  54. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/liveVirtualBuffer.d.ts +25 -25
  55. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager.d.ts +19 -19
  56. package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/virtualBufferFactory.d.ts +4 -4
  57. package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +68 -68
  58. package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +103 -100
  59. package/types/providers/DashProviderVirtual/lib/player/livePlayer.d.ts +34 -34
  60. package/types/providers/DashProviderVirtual/lib/player/player.d.ts +9 -9
  61. package/types/providers/DashProviderVirtual/lib/player/types.d.ts +13 -13
  62. package/types/providers/DashProviderVirtual/lib/types.d.ts +20 -20
  63. package/types/providers/DashProviderVirtual/lib/utils.d.ts +4 -4
  64. package/types/providers/HlsLiveProvider/LiveTextManager.d.ts +35 -35
  65. package/types/providers/HlsLiveProvider/index.d.ts +28 -28
  66. package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
  67. package/types/providers/HlsProvider/index.d.ts +18 -19
  68. package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
  69. package/types/providers/MpegProvider/index.d.ts +16 -17
  70. package/types/providers/ProviderContainer/index.d.ts +45 -45
  71. package/types/providers/ProviderContainer/types.d.ts +16 -16
  72. package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +9 -9
  73. package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +9 -8
  74. package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
  75. package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +57 -57
  76. package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +6 -6
  77. package/types/providers/types.d.ts +102 -102
  78. package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +40 -39
  79. package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +28 -28
  80. package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +5 -5
  81. package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -25
  82. package/types/providers/utils/HTMLVideoElement/pool.d.ts +2 -2
  83. package/types/providers/utils/LiveOffset/index.d.ts +12 -12
  84. package/types/providers/utils/LiveOffset/types.d.ts +8 -8
  85. package/types/providers/utils/StallsManager.d.ts +49 -49
  86. package/types/providers/utils/debug.d.ts +13 -12
  87. package/types/providers/utils/extractConnectionHeaders.d.ts +3 -3
  88. package/types/providers/utils/generateLiveUrl.d.ts +4 -4
  89. package/types/providers/utils/guessNetworkErrorCause.d.ts +1 -1
  90. package/types/providers/utils/mergeIntervals.d.ts +1 -1
  91. package/types/providers/utils/okQualityStringToVideoQuality.d.ts +1 -1
  92. package/types/providers/utils/parsers/ietf/index.d.ts +8 -8
  93. package/types/providers/utils/parsers/index.d.ts +1 -1
  94. package/types/providers/utils/parsers/mpd.d.ts +1 -1
  95. package/types/providers/utils/parsers/mpeg/BoxModel.d.ts +18 -17
  96. package/types/providers/utils/parsers/mpeg/BoxParser.d.ts +15 -15
  97. package/types/providers/utils/parsers/mpeg/BoxTypeEnum.d.ts +27 -27
  98. package/types/providers/utils/parsers/mpeg/box.d.ts +68 -68
  99. package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +5 -5
  100. package/types/providers/utils/parsers/mpeg/boxes/equi.d.ts +18 -18
  101. package/types/providers/utils/parsers/mpeg/boxes/ftyp.d.ts +14 -14
  102. package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +27 -26
  103. package/types/providers/utils/parsers/mpeg/boxes/mdat.d.ts +12 -12
  104. package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +5 -5
  105. package/types/providers/utils/parsers/mpeg/boxes/mfhd.d.ts +8 -8
  106. package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +5 -5
  107. package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +5 -5
  108. package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +5 -5
  109. package/types/providers/utils/parsers/mpeg/boxes/mvhd.d.ts +32 -32
  110. package/types/providers/utils/parsers/mpeg/boxes/prhd.d.ts +13 -13
  111. package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +5 -5
  112. package/types/providers/utils/parsers/mpeg/boxes/sidx.d.ts +43 -43
  113. package/types/providers/utils/parsers/mpeg/boxes/st3d.d.ts +16 -16
  114. package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +5 -5
  115. package/types/providers/utils/parsers/mpeg/boxes/stsd.d.ts +8 -8
  116. package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +5 -5
  117. package/types/providers/utils/parsers/mpeg/boxes/tfdt.d.ts +14 -14
  118. package/types/providers/utils/parsers/mpeg/boxes/tfhd.d.ts +19 -19
  119. package/types/providers/utils/parsers/mpeg/boxes/tkhd.d.ts +39 -39
  120. package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +5 -5
  121. package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +5 -5
  122. package/types/providers/utils/parsers/mpeg/boxes/trun.d.ts +28 -28
  123. package/types/providers/utils/parsers/mpeg/boxes/unknown.d.ts +4 -5
  124. package/types/providers/utils/parsers/mpeg/boxes/uuid.d.ts +10 -10
  125. package/types/providers/utils/parsers/mpeg/fullBox.d.ts +12 -12
  126. package/types/providers/utils/parsers/mpeg/isobmff.d.ts +7 -7
  127. package/types/providers/utils/parsers/types.d.ts +131 -133
  128. package/types/providers/utils/parsers/webm/ebml.d.ts +62 -62
  129. package/types/providers/utils/parsers/webm/webm.d.ts +1 -1
  130. package/types/providers/utils/restorePlaybackRateInSafari.d.ts +17 -17
  131. package/types/providers/utils/syncDesiredState.d.ts +7 -9
  132. package/types/providers/utils/syncPlaybackState.d.ts +2 -2
  133. package/types/providers/utils/videoStreamRepresentaionsFilter.d.ts +2 -2
  134. package/types/utils/3d/Camera3D.d.ts +11 -11
  135. package/types/utils/3d/CameraRotationManager.d.ts +59 -59
  136. package/types/utils/3d/Scene3D.d.ts +129 -129
  137. package/types/utils/3d/types.d.ts +14 -14
  138. package/types/utils/ClientChecker/ClientChecker.d.ts +19 -19
  139. package/types/utils/ClientChecker/index.d.ts +2 -2
  140. package/types/utils/ClientChecker/services/AudioChecker.d.ts +7 -7
  141. package/types/utils/ClientChecker/services/BrowserChecker.d.ts +36 -36
  142. package/types/utils/ClientChecker/services/DeviceChecker.d.ts +38 -38
  143. package/types/utils/ClientChecker/services/DisplayChecker.d.ts +20 -20
  144. package/types/utils/ClientChecker/services/VideoChecker.d.ts +35 -35
  145. package/types/utils/ClientChecker/types/checker.d.ts +1 -1
  146. package/types/utils/ClientChecker/types/currentClientBrowser.d.ts +10 -10
  147. package/types/utils/ClientChecker/types/currentClientDevice.d.ts +8 -8
  148. package/types/utils/ClientChecker/types/userAgentData.d.ts +21 -21
  149. package/types/utils/StateMachine/StateMachine.d.ts +17 -17
  150. package/types/utils/StateMachine/types.d.ts +56 -56
  151. package/types/utils/StatefulIterator/index.d.ts +13 -13
  152. package/types/utils/ThroughputEstimator.d.ts +22 -22
  153. package/types/utils/VolumeMultiplierManager/VolumeMultiplierManager.d.ts +20 -20
  154. package/types/utils/VolumeMultiplierManager/index.d.ts +1 -1
  155. package/types/utils/autoSelectTrack.d.ts +28 -27
  156. package/types/utils/buffer/createTimeRanges.d.ts +2 -1
  157. package/types/utils/buffer/getBufferedRangeForPosition.d.ts +2 -2
  158. package/types/utils/buffer/getForwardBufferDuration.d.ts +1 -1
  159. package/types/utils/buffer/getTotalBufferDuration.d.ts +1 -1
  160. package/types/utils/buffer/isPositionBuffered.d.ts +1 -1
  161. package/types/utils/buffer/isSourceBufferValid.d.ts +1 -1
  162. package/types/utils/changePlaybackRate.d.ts +1 -1
  163. package/types/utils/decodingInfoLogger.d.ts +1 -1
  164. package/types/utils/mediaSource.d.ts +1 -5
  165. package/types/utils/observeElementVisibility.d.ts +1 -1
  166. package/types/utils/playbackTelemetry.d.ts +4 -4
  167. package/types/utils/playerOptions.d.ts +3 -3
  168. package/types/utils/qualityLimits.d.ts +15 -14
  169. package/types/utils/setStateWithSubscribe.d.ts +6 -3
  170. package/types/utils/smoothedValue/baseSmoothedValue.d.ts +16 -16
  171. package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +5 -5
  172. package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +8 -8
  173. package/types/utils/smoothedValue/smoothedValueFactory.d.ts +4 -4
  174. package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +6 -6
  175. package/types/utils/smoothedValue/types.d.ts +16 -16
  176. package/types/utils/tuningConfig.d.ts +276 -275
  177. package/types/utils/videoFormat.d.ts +1 -1
  178. package/es2015.cjs +0 -184
  179. package/es2015.esm.js +0 -184
  180. package/es2018.cjs +0 -184
  181. package/es2018.esm.js +0 -184
  182. package/es2024.cjs +0 -184
  183. package/es2024.esm.js +0 -184
  184. package/esnext.cjs +0 -184
  185. package/evergreen.esm.js +0 -183
  186. package/types/providers/utils/error.d.ts +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.153-dev.44065e09.0",
3
+ "version": "2.0.153-dev.5183c3ef8.0",
4
4
  "author": "vk.com",
5
5
  "description": "Videoplayer core library based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -11,6 +11,7 @@
11
11
  "type": "module",
12
12
  "exports": {
13
13
  ".": {
14
+ "bun": "./../src/index.ts",
14
15
  "types": "./types/index.d.ts",
15
16
  "import": "./esnext.esm.js",
16
17
  "require": "./esnext.cjs"
@@ -54,6 +55,6 @@
54
55
  "**/*.d.ts"
55
56
  ],
56
57
  "dependencies": {
57
- "@vkontakte/videoplayer-shared": "1.0.82-dev.44065e09.0"
58
+ "@vkontakte/videoplayer-shared": "1.0.82-dev.5183c3ef8.0"
58
59
  }
59
60
  }
@@ -1,8 +1,8 @@
1
1
  export declare enum AndroidPreferredFormat {
2
- DASH = "dash",// Все дэши согласно обычным приоритетам
3
- HLS = "hls",
4
- MPEG = "mpeg",
5
- DASH_ANY_MPEG = "dash_any_mpeg",// SEP/ONDEMAND -> MPEG -> ... (вебм дэшы не должны играть совсем)
6
- DASH_ANY_WEBM = "dash_any_webm",// WEBM/WEBM_AV1 -> MPEG -> ... (мпег дэшы не должны играть совсем)
7
- DASH_SEP = "dash_sep"
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
8
  }
@@ -1,4 +1,4 @@
1
1
  export declare enum IOSPreferredFormat {
2
- HLS = "hls",
3
- HLS_FMP4 = "hls_fmp4"
2
+ HLS = "hls",
3
+ HLS_FMP4 = "hls_fmp4"
4
4
  }
@@ -1,7 +1,7 @@
1
1
  export declare enum WebmCodecStrategy {
2
- VP9 = "vp9",
3
- AV1 = "av1",
4
- NONE = "none",
5
- SMOOTH = "smooth",
6
- POWER_EFFICIENT = "power_efficient"
2
+ VP9 = "vp9",
3
+ AV1 = "av1",
4
+ NONE = "none",
5
+ SMOOTH = "smooth",
6
+ POWER_EFFICIENT = "power_efficient"
7
7
  }
package/types/index.d.ts CHANGED
@@ -1,15 +1,18 @@
1
- import { VERSION } from './env';
2
- import { VideoFormat, IMpegSource, IDashSource, IHLSSource, IDashURLSource, IHLSLiveSource, ISeekRequest, URLSource, RawSource, URLSourceWithSeek, Surface, PredefinedQualityLimits } from './player/types';
3
- import Player from './player/Player';
4
- import { IPlayer, PlaybackState, IPlayerInfo, IPlayerEvents, IConfig, ISources, ICueSettings, ChromecastState, HttpConnectionType, IExternalTextTrack, ITextTrack, PlaybackRate, IVideoStream, IAudioStream } from './player/types';
5
- import type { IOptionalTuningConfig } from './utils/tuningConfig';
6
- export { clientChecker, isMobile } from './utils/ClientChecker';
7
- export { areValidLiveRecordSources } from './utils/videoFormat';
8
- export { WebmCodecStrategy } from './enums/WebmCodecStrategy';
9
- import type { ISubscription, IUnsubscriber, IEmitter, IObservable, IValueObservable, IValue, IOperator, IListener, ILogEntry, IRange, ExactVideoQuality } from '@vkontakte/videoplayer-shared';
10
- import { Subscription, Observable, Subject, ValueSubject, VideoQuality } from '@vkontakte/videoplayer-shared';
1
+ import { VERSION } from "./env";
2
+ import type { IMpegSource, IDashSource, IHLSSource, IDashURLSource, IHLSLiveSource, ISeekRequest, URLSource, RawSource, URLSourceWithSeek } from "./player/types";
3
+ import { VideoFormat, Surface, PredefinedQualityLimits, VideoCodec } from "./player/types";
4
+ import Player from "./player/Player";
5
+ import type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, ISources, ICueSettings, IExternalTextTrack, ITextTrack, PlaybackRate, IVideoStream, IAudioStream } from "./player/types";
6
+ import { PlaybackState, ChromecastState, HttpConnectionType } from "./player/types";
7
+ import type { IOptionalTuningConfig } from "./utils/tuningConfig";
8
+ export { clientChecker, isMobile } from "./utils/ClientChecker";
9
+ export { areValidLiveRecordSources } from "./utils/videoFormat";
10
+ export { WebmCodecStrategy } from "./enums/WebmCodecStrategy";
11
+ import type { ISubscription, IUnsubscriber, IEmitter, IObservable, IValueObservable, IValue, IOperator, IListener, ILogEntry, IRange, ExactVideoQuality } from "@vkontakte/videoplayer-shared";
12
+ import { Subscription, Observable, Subject, ValueSubject, VideoQuality } from "@vkontakte/videoplayer-shared";
11
13
  /**
12
- * @deprecated
13
- */
14
+ * @deprecated
15
+ */
14
16
  declare const SDK_VERSION: string;
15
- 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, IVideoStream, IAudioStream, PredefinedQualityLimits, };
17
+ export type { IPlayer, IPlayerInfo, IPlayerEvents, IConfig, IOptionalTuningConfig, ILogEntry, ISources, IExternalTextTrack, ITextTrack, ISubscription, IUnsubscriber, IObservable, IEmitter, IValueObservable, IValue, IOperator, IListener, IMpegSource, IDashSource, IDashURLSource, IHLSSource, IHLSLiveSource, URLSource, RawSource, URLSourceWithSeek, ExactVideoQuality, IRange, ISeekRequest, ICueSettings, PlaybackRate, IVideoStream, IAudioStream };
18
+ export { Player, PlaybackState, ChromecastState, HttpConnectionType, Surface, Subscription, VideoFormat, VideoQuality, Observable, Subject, ValueSubject, VERSION, SDK_VERSION, PredefinedQualityLimits, VideoCodec };
@@ -1,211 +1,219 @@
1
- import { IOptionalTuningConfig } from '../utils/tuningConfig';
2
- import { IError, ILogEntry, Seconds, Subject, ValueSubject, QualityLimits, VideoQuality, ITracer } from '@vkontakte/videoplayer-shared';
3
- import { ChromecastState, HttpConnectionType, HttpConnectionMetrics, HttpDownloadMetrics, IAudioStream, IConfig, ICueSettings, IExternalTextTrack, IPlayer, ISeekRequest, ISources, ITextTrack, IVideoStream, PlaybackRate, PlaybackState, PredefinedQualityLimits, StartEnd, Surface, VideoFormat } from './types';
4
- import { IPlayerOptions } from '../utils/playerOptions';
1
+ import { dump } from "../utils/playbackTelemetry";
2
+ import type { IOptionalTuningConfig } from "../utils/tuningConfig";
3
+ import type { IError, ILogEntry, Kbps, Milliseconds, Seconds, QualityLimits, VideoQuality, ITracer } from "@vkontakte/videoplayer-shared";
4
+ import { Subject, ValueSubject } from "@vkontakte/videoplayer-shared";
5
+ import { ChromecastState, type FpsByQuality, type HttpConnectionType, type HttpConnectionMetrics, type HttpDownloadMetrics, type IAudioStream, type IAudioTrack, type IConfig, type ICueSettings, type IExternalTextTrack, type IPlayer, type ISeekRequest, type ISources, type ITextTrack, type IVideoStream, type PlaybackRate, PlaybackState, PredefinedQualityLimits, type StartEnd, Surface, type VideoFormat } from "./types";
6
+ import type { IPlayerOptions } from "../utils/playerOptions";
7
+ /** Конкретный тип для Player.info с ValueSubject вместо IValueObservable */
8
+ interface PlayerInfoImpl {
9
+ playbackState$: ValueSubject<PlaybackState | undefined>;
10
+ position$: ValueSubject<number>;
11
+ duration$: ValueSubject<number>;
12
+ muted$: ValueSubject<boolean>;
13
+ volume$: ValueSubject<number>;
14
+ availableVideoStreams$: ValueSubject<IVideoStream[]>;
15
+ currentVideoStream$: ValueSubject<IVideoStream | undefined>;
16
+ availableQualities$: ValueSubject<VideoQuality[]>;
17
+ availableQualitiesFps$: ValueSubject<FpsByQuality>;
18
+ currentQuality$: ValueSubject<VideoQuality | undefined>;
19
+ isAutoQualityEnabled$: ValueSubject<boolean>;
20
+ autoQualityLimitingAvailable$: ValueSubject<boolean>;
21
+ autoQualityLimits$: ValueSubject<QualityLimits>;
22
+ predefinedQualityLimitType$: ValueSubject<PredefinedQualityLimits>;
23
+ availableAudioStreams$: ValueSubject<IAudioStream[]>;
24
+ currentAudioStream$: ValueSubject<IVideoStream | undefined>;
25
+ availableAudioTracks$: ValueSubject<IAudioTrack[]>;
26
+ isAudioAvailable$: ValueSubject<boolean>;
27
+ currentPlaybackRate$: ValueSubject<PlaybackRate>;
28
+ currentBuffer$: ValueSubject<StartEnd<Seconds>>;
29
+ currentNativeBuffer$: ValueSubject<StartEnd<Seconds>>;
30
+ isBuffering$: ValueSubject<boolean>;
31
+ isStalled$: ValueSubject<boolean>;
32
+ isEnded$: ValueSubject<boolean>;
33
+ isLooped$: ValueSubject<boolean>;
34
+ isLive$: ValueSubject<boolean | undefined>;
35
+ isLiveEnded$: ValueSubject<boolean | null>;
36
+ canPlayLiveTailBuffer$: ValueSubject<boolean>;
37
+ canChangePlaybackSpeed$: ValueSubject<boolean | undefined>;
38
+ atLiveEdge$: ValueSubject<boolean | undefined>;
39
+ atLiveDurationEdge$: ValueSubject<boolean | undefined>;
40
+ liveTime$: ValueSubject<Milliseconds | undefined>;
41
+ liveBufferTime$: ValueSubject<Milliseconds | undefined>;
42
+ liveLatency$: ValueSubject<Milliseconds | undefined>;
43
+ currentFormat$: ValueSubject<VideoFormat | undefined>;
44
+ availableTextTracks$: ValueSubject<ITextTrack[]>;
45
+ currentTextTrack$: ValueSubject<ITextTrack["id"] | undefined>;
46
+ throughputEstimation$: ValueSubject<Kbps | undefined>;
47
+ rttEstimation$: ValueSubject<Milliseconds | undefined>;
48
+ videoBitrate$: ValueSubject<Kbps | undefined>;
49
+ hostname$: ValueSubject<string | undefined>;
50
+ httpConnectionType$: ValueSubject<HttpConnectionType | undefined>;
51
+ httpConnectionReused$: ValueSubject<boolean | undefined>;
52
+ httpConnectionMetrics$: ValueSubject<HttpConnectionMetrics | undefined>;
53
+ httpDownloadMetrics$: ValueSubject<HttpDownloadMetrics | 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
+ /** Конкретный тип для Player.events с Subject вместо IObservable */
67
+ interface PlayerEventsImpl {
68
+ inited$: Subject<void>;
69
+ ready$: Subject<void>;
70
+ started$: Subject<void>;
71
+ playing$: Subject<void>;
72
+ paused$: Subject<void>;
73
+ stopped$: Subject<void>;
74
+ willReady$: Subject<void>;
75
+ willStart$: Subject<void>;
76
+ willResume$: Subject<void>;
77
+ willPause$: Subject<void>;
78
+ willStop$: Subject<void>;
79
+ willDestruct$: Subject<void>;
80
+ watchCoverageRecord$: Subject<StartEnd<Seconds>>;
81
+ watchCoverageLive$: Subject<StartEnd<Milliseconds>>;
82
+ managedError$: Subject<IError>;
83
+ fatalError$: Subject<IError>;
84
+ fetcherRecoverableError$: Subject<IError>;
85
+ ended$: Subject<void>;
86
+ looped$: Subject<Seconds>;
87
+ seeked$: Subject<void>;
88
+ willSeek$: Subject<ISeekRequest>;
89
+ autoplaySoundProhibited$: Subject<void>;
90
+ manifestRequested$: Subject<void>;
91
+ firstBytesManifest$: Subject<void>;
92
+ manifestReceived$: Subject<void>;
93
+ firstBytesRequested$: Subject<void>;
94
+ firstBytesReceived$: Subject<void>;
95
+ firstBytes$: Subject<Milliseconds>;
96
+ loadedMetadata$: Subject<void>;
97
+ firstFrame$: Subject<Milliseconds>;
98
+ canplay$: Subject<Milliseconds>;
99
+ log$: Subject<ILogEntry>;
100
+ fetcherError$: Subject<IError>;
101
+ severeStallOccured$: Subject<boolean>;
102
+ }
103
+ /** Конкретный тип для Player.experimental */
104
+ interface PlayerExperimentalImpl {
105
+ element$: ValueSubject<HTMLVideoElement | undefined>;
106
+ enableDebugTelemetry$: ValueSubject<boolean>;
107
+ dumpTelemetry: typeof dump;
108
+ getCurrentTime$: ValueSubject<(() => number) | null>;
109
+ }
5
110
  export default class Player implements IPlayer {
6
- private subscription;
7
- private domContainer;
8
- private providerContainer?;
9
- private chromecastInitializer;
10
- private logger;
11
- private tracer;
12
- private abrLogger;
13
- private config;
14
- private tuning;
15
- private throughputEstimator;
16
- private internalsExposure;
17
- private isPlaybackStarted;
18
- private initedAt;
19
- private hasLiveOffsetByPaused;
20
- private hasLiveOffsetByPausedTimer;
21
- private playerInitRequest;
22
- private playerInited;
23
- private explicitInitialQuality;
24
- private wasSetStartedQuality;
25
- private desiredState;
26
- info: {
27
- playbackState$: ValueSubject<PlaybackState | undefined>;
28
- position$: ValueSubject<number>;
29
- duration$: ValueSubject<number>;
30
- muted$: ValueSubject<boolean>;
31
- volume$: ValueSubject<number>;
32
- availableVideoStreams$: ValueSubject<IVideoStream[]>;
33
- currentVideoStream$: ValueSubject<IVideoStream | undefined>;
34
- availableQualities$: ValueSubject<VideoQuality[]>;
35
- availableQualitiesFps$: ValueSubject<Partial<Record<VideoQuality, number>>>;
36
- currentQuality$: ValueSubject<VideoQuality | undefined>;
37
- isAutoQualityEnabled$: ValueSubject<boolean>;
38
- autoQualityLimitingAvailable$: ValueSubject<boolean>;
39
- autoQualityLimits$: ValueSubject<QualityLimits>;
40
- predefinedQualityLimitType$: ValueSubject<PredefinedQualityLimits>;
41
- availableAudioStreams$: ValueSubject<IAudioStream[]>;
42
- currentAudioStream$: ValueSubject<IVideoStream | undefined>;
43
- availableAudioTracks$: ValueSubject<import("./types").IBaseTrack[]>;
44
- isAudioAvailable$: ValueSubject<boolean>;
45
- currentPlaybackRate$: ValueSubject<number>;
46
- currentBuffer$: ValueSubject<StartEnd<number>>;
47
- currentNativeBuffer$: ValueSubject<StartEnd<number>>;
48
- isBuffering$: ValueSubject<boolean>;
49
- isStalled$: ValueSubject<boolean>;
50
- isEnded$: ValueSubject<boolean>;
51
- isLooped$: ValueSubject<boolean>;
52
- isLive$: ValueSubject<boolean | undefined>;
53
- isLiveEnded$: ValueSubject<boolean | null>;
54
- canPlayLiveTailBuffer$: ValueSubject<boolean>;
55
- canChangePlaybackSpeed$: ValueSubject<boolean | undefined>;
56
- atLiveEdge$: ValueSubject<boolean | undefined>;
57
- atLiveDurationEdge$: ValueSubject<boolean | undefined>;
58
- liveTime$: ValueSubject<number | undefined>;
59
- liveBufferTime$: ValueSubject<number | undefined>;
60
- liveLatency$: ValueSubject<number | undefined>;
61
- currentFormat$: ValueSubject<VideoFormat | undefined>;
62
- availableTextTracks$: ValueSubject<ITextTrack[]>;
63
- currentTextTrack$: ValueSubject<string | undefined>;
64
- throughputEstimation$: ValueSubject<number | undefined>;
65
- rttEstimation$: ValueSubject<number | undefined>;
66
- videoBitrate$: ValueSubject<number | undefined>;
67
- hostname$: ValueSubject<string | undefined>;
68
- httpConnectionType$: ValueSubject<HttpConnectionType | undefined>;
69
- httpConnectionReused$: ValueSubject<boolean | undefined>;
70
- httpConnectionMetrics$: ValueSubject<HttpConnectionMetrics | undefined>;
71
- httpDownloadMetrics$: ValueSubject<HttpDownloadMetrics | undefined>;
72
- surface$: ValueSubject<Surface>;
73
- chromecastState$: ValueSubject<ChromecastState>;
74
- chromecastDeviceName$: ValueSubject<string | undefined>;
75
- intrinsicVideoSize$: ValueSubject<{
76
- width: number;
77
- height: number;
78
- } | undefined>;
79
- availableSources$: ValueSubject<ISources | undefined>;
80
- is3DVideo$: ValueSubject<boolean>;
81
- currentVideoSegmentLength$: ValueSubject<number>;
82
- currentAudioSegmentLength$: ValueSubject<number>;
83
- };
84
- events: {
85
- inited$: Subject<void>;
86
- ready$: Subject<void>;
87
- started$: Subject<void>;
88
- playing$: Subject<void>;
89
- paused$: Subject<void>;
90
- stopped$: Subject<void>;
91
- willReady$: Subject<void>;
92
- willStart$: Subject<void>;
93
- willResume$: Subject<void>;
94
- willPause$: Subject<void>;
95
- willStop$: Subject<void>;
96
- willDestruct$: Subject<void>;
97
- watchCoverageRecord$: Subject<StartEnd<number>>;
98
- watchCoverageLive$: Subject<StartEnd<number>>;
99
- managedError$: Subject<IError>;
100
- fatalError$: Subject<IError>;
101
- fetcherRecoverableError$: Subject<IError>;
102
- ended$: Subject<void>;
103
- looped$: Subject<number>;
104
- seeked$: Subject<void>;
105
- willSeek$: Subject<ISeekRequest>;
106
- autoplaySoundProhibited$: Subject<void>;
107
- manifestRequested$: Subject<void>;
108
- firstBytesManifest$: Subject<void>;
109
- manifestReceived$: Subject<void>;
110
- firstBytesRequested$: Subject<void>;
111
- firstBytesReceived$: Subject<void>;
112
- firstBytes$: Subject<number>;
113
- loadedMetadata$: Subject<void>;
114
- firstFrame$: Subject<number>;
115
- canplay$: Subject<number>;
116
- log$: Subject<ILogEntry>;
117
- fetcherError$: Subject<IError>;
118
- severeStallOccured$: Subject<boolean>;
119
- };
120
- experimental: {
121
- element$: ValueSubject<HTMLVideoElement | undefined>;
122
- enableDebugTelemetry$: ValueSubject<boolean>;
123
- dumpTelemetry: (receiver: (value: Record<string, any>) => void) => void;
124
- getCurrentTime$: ValueSubject<null>;
125
- };
126
- private devNullLog;
127
- private collectDecodingInfoDestroyCb;
128
- constructor(tuning?: IOptionalTuningConfig, tracer?: ITracer, playerOptions?: IPlayerOptions);
129
- initVideo(config: IConfig): IPlayer;
130
- destroy(): void;
131
- private waitInit;
132
- prepare(): IPlayer;
133
- play(): IPlayer;
134
- pause(): IPlayer;
135
- stop(): IPlayer;
136
- seekTime(time: Seconds, forcePrecise?: boolean): IPlayer;
137
- /**
138
- * NOTE: Сейчас вызов `seekPercent` до получения `duration` не сработает.
139
- * @param percent: number [0, 1];
140
- */
141
- seekPercent(percent: number): IPlayer;
142
- setVolume(percent: number, desiredMuted?: boolean): IPlayer;
143
- setMuted(muted: boolean, forced?: boolean): IPlayer;
144
- setVideoStream(stream: IVideoStream): IPlayer;
145
- setAudioStream(stream: IAudioStream): IPlayer;
146
- setQuality(quality: VideoQuality): IPlayer;
147
- setAutoQuality(enable: boolean): IPlayer;
148
- setAutoQualityLimits(limits: QualityLimits): IPlayer;
149
- setPredefinedQualityLimits(type: PredefinedQualityLimits): this;
150
- setPlaybackRate(playbackRate: PlaybackRate): IPlayer;
151
- setExternalTextTracks(tracks: Omit<IExternalTextTrack, 'type'>[]): IPlayer;
152
- selectTextTrack(id: ITextTrack['id'] | undefined): IPlayer;
153
- setTextTrackCueSettings(settings: ICueSettings): IPlayer;
154
- setLiveLowLatency(isLowLatency: boolean): IPlayer;
155
- setLooped(isLooped: boolean): IPlayer;
156
- toggleChromecast(): void;
157
- /**
158
- * Starts 3D-camera constant rotation
159
- * Base rotation speed is provided through the tuning config
160
- *
161
- * @param mx - camera X rotation speed multiplier
162
- * @param my - camera Y rotation speed multiplier
163
- *
164
- * 1 - positive direction
165
- * 0.5 - half speed in positive direction
166
- * 0 - no rotation
167
- * -1 negative direction
168
- * -2 double speed in negative direction
169
- *
170
- * Limitations:
171
- * When camera reaches angles 180 or -180 in vertical direction it stops.
172
- * z-axis is frozen for now
173
- *
174
- * Set all zeroes to stop the camera rotation
175
- * startCameraManualRotation(0, 0);
176
- */
177
- startCameraManualRotation(mx: number, my: number): this;
178
- /**
179
- * Rotates 3d-camera to given angles relative to current position
180
- */
181
- stopCameraManualRotation(immediate?: boolean): this;
182
- /**
183
- * Rotates 3d-camera to given angles relative to current position
184
- * using mouse deltas and scene fov
185
- */
186
- moveCameraFocusPX(dxpx: number, dypx: number): this;
187
- /**
188
- * "Holds" camera so that it can not perform movement without manual control
189
- */
190
- holdCamera(): this;
191
- /**
192
- * "Releases" the camera so that it can move using its internal logic
193
- */
194
- releaseCamera(): this;
195
- getExactTime(): Seconds;
196
- getAllLogs(): ILogEntry[];
197
- private getScene3D;
198
- private setIntrinsicVideoSize;
199
- private initDesiredStateSubscriptions;
200
- private initProviderContainerSubscription;
201
- private initChromecastSubscription;
202
- private initStartingVideoTrack;
203
- private setStartingVideoTrack;
204
- private initLogs;
205
- private initDebugTelemetry;
206
- private initTracerSubscription;
207
- private initWakeLock;
208
- private setVideoTrackIdByQuality;
209
- private getActiveLiveDelay;
210
- private isNotActiveTabCase;
111
+ private subscription;
112
+ private domContainer;
113
+ private providerContainer?;
114
+ private chromecastInitializer;
115
+ private logger;
116
+ private tracer;
117
+ private abrLogger;
118
+ private config;
119
+ private tuning;
120
+ private throughputEstimator;
121
+ private internalsExposure;
122
+ private isPlaybackStarted;
123
+ private initedAt;
124
+ private hasLiveOffsetByPaused;
125
+ private hasLiveOffsetByPausedTimer;
126
+ private playerInitRequest;
127
+ private playerInited;
128
+ private explicitInitialQuality;
129
+ private wasSetStartedQuality;
130
+ private desiredState;
131
+ info: PlayerInfoImpl;
132
+ events: PlayerEventsImpl;
133
+ experimental: PlayerExperimentalImpl;
134
+ private devNullLog;
135
+ private collectDecodingInfoDestroyCb;
136
+ constructor(tuning?: IOptionalTuningConfig, tracer?: ITracer, playerOptions?: IPlayerOptions);
137
+ initVideo(config: IConfig): IPlayer;
138
+ destroy(): void;
139
+ private waitInit;
140
+ prepare(): IPlayer;
141
+ play(): IPlayer;
142
+ pause(): IPlayer;
143
+ stop(): IPlayer;
144
+ seekTime(time: Seconds, forcePrecise?: boolean): IPlayer;
145
+ /**
146
+ * NOTE: Сейчас вызов `seekPercent` до получения `duration` не сработает.
147
+ * @param percent: number [0, 1];
148
+ */
149
+ seekPercent(percent: number): IPlayer;
150
+ setVolume(percent: number, desiredMuted?: boolean): IPlayer;
151
+ setMuted(muted: boolean, forced?: boolean): IPlayer;
152
+ setVideoStream(stream: IVideoStream): IPlayer;
153
+ setAudioStream(stream: IAudioStream): IPlayer;
154
+ setQuality(quality: VideoQuality): IPlayer;
155
+ setAutoQuality(enable: boolean): IPlayer;
156
+ setAutoQualityLimits(limits: QualityLimits): IPlayer;
157
+ setPredefinedQualityLimits(type: PredefinedQualityLimits): this;
158
+ setPlaybackRate(playbackRate: PlaybackRate): IPlayer;
159
+ setExternalTextTracks(tracks: Omit<IExternalTextTrack, "type">[]): IPlayer;
160
+ selectTextTrack(id: ITextTrack["id"] | undefined): IPlayer;
161
+ setTextTrackCueSettings(settings: ICueSettings): IPlayer;
162
+ setLiveLowLatency(isLowLatency: boolean): IPlayer;
163
+ setLooped(isLooped: boolean): IPlayer;
164
+ toggleChromecast(): void;
165
+ /**
166
+ * Starts 3D-camera constant rotation
167
+ * Base rotation speed is provided through the tuning config
168
+ *
169
+ * @param mx - camera X rotation speed multiplier
170
+ * @param my - camera Y rotation speed multiplier
171
+ *
172
+ * 1 - positive direction
173
+ * 0.5 - half speed in positive direction
174
+ * 0 - no rotation
175
+ * -1 negative direction
176
+ * -2 double speed in negative direction
177
+ *
178
+ * Limitations:
179
+ * When camera reaches angles 180 or -180 in vertical direction it stops.
180
+ * z-axis is frozen for now
181
+ *
182
+ * Set all zeroes to stop the camera rotation
183
+ * startCameraManualRotation(0, 0);
184
+ */
185
+ startCameraManualRotation(mx: number, my: number): this;
186
+ /**
187
+ * Rotates 3d-camera to given angles relative to current position
188
+ */
189
+ stopCameraManualRotation(immediate?: boolean): this;
190
+ /**
191
+ * Rotates 3d-camera to given angles relative to current position
192
+ * using mouse deltas and scene fov
193
+ */
194
+ moveCameraFocusPX(dxpx: number, dypx: number): this;
195
+ /**
196
+ * "Holds" camera so that it can not perform movement without manual control
197
+ */
198
+ holdCamera(): this;
199
+ /**
200
+ * "Releases" the camera so that it can move using its internal logic
201
+ */
202
+ releaseCamera(): this;
203
+ getExactTime(): Seconds;
204
+ getAllLogs(): ILogEntry[];
205
+ private getScene3D;
206
+ private setIntrinsicVideoSize;
207
+ private initDesiredStateSubscriptions;
208
+ private initProviderContainerSubscription;
209
+ private initChromecastSubscription;
210
+ private initStartingVideoTrack;
211
+ private setStartingVideoTrack;
212
+ private initLogs;
213
+ private initDebugTelemetry;
214
+ private initTracerSubscription;
215
+ private initWakeLock;
216
+ private setVideoTrackIdByQuality;
217
+ private getActiveLiveDelay;
218
+ private isNotActiveTabCase;
211
219
  }