@vkontakte/videoplayer-core 2.0.39 → 2.0.41

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-core",
3
- "version": "2.0.39",
3
+ "version": "2.0.41",
4
4
  "author": "vk.com",
5
5
  "description": "Videoplayer core library based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -14,9 +14,9 @@
14
14
  "**/*.d.ts"
15
15
  ],
16
16
  "dependencies": {
17
- "@vkontakte/videoplayer-shared": "1.0.6",
17
+ "@vkontakte/videoplayer-shared": "1.0.7",
18
18
  "dashjs": "4.2.1",
19
- "hls.js": "1.1.3",
19
+ "hls.js": "1.1.5",
20
20
  "lodash": "4.17.21"
21
21
  }
22
22
  }
@@ -23,6 +23,7 @@ export default class Player implements IPlayer {
23
23
  muted$: ValueSubject<boolean>;
24
24
  volume$: ValueSubject<number>;
25
25
  availableQualities$: ValueSubject<VideoQuality[]>;
26
+ availableQualitiesFps$: ValueSubject<Partial<Record<VideoQuality, number>>>;
26
27
  currentQuality$: ValueSubject<VideoQuality | undefined>;
27
28
  isAutoQualityEnabled$: ValueSubject<boolean>;
28
29
  currentBuffer$: ValueSubject<IRange<number> | undefined>;
@@ -43,6 +44,10 @@ export default class Player implements IPlayer {
43
44
  httpConnectionReused$: ValueSubject<boolean | undefined>;
44
45
  chromecastState$: ValueSubject<ChromecastState>;
45
46
  chromecastDeviceName$: ValueSubject<string | undefined>;
47
+ intrinsicVideoSize$: ValueSubject<{
48
+ width: number;
49
+ height: number;
50
+ } | undefined>;
46
51
  };
47
52
  events: {
48
53
  started$: Subject<boolean>;
package/player/types.d.ts CHANGED
@@ -161,6 +161,12 @@ export interface IPlayerInfo {
161
161
  * default value: `[]`
162
162
  */
163
163
  availableQualities$: IValueObservable<VideoQuality[]>;
164
+ /**
165
+ * Список фпс для доступных качеств
166
+ *
167
+ * default value: `{}`
168
+ */
169
+ availableQualitiesFps$: IValueObservable<FpsByQuality>;
164
170
  /**
165
171
  * Реальное качество, в котором сейчас воспроизводится видео.
166
172
  *
@@ -248,6 +254,13 @@ export interface IPlayerInfo {
248
254
  * `undefined`, если видео не играет на Chromecast устройстве
249
255
  */
250
256
  chromecastDeviceName$: IValueObservable<string | undefined>;
257
+ /**
258
+ * Фактический размер видео
259
+ */
260
+ intrinsicVideoSize$: IValueObservable<{
261
+ width: number;
262
+ height: number;
263
+ } | undefined>;
251
264
  }
252
265
  export declare enum PlaybackState {
253
266
  STOPPED = "stopped",
@@ -323,6 +336,7 @@ export interface IVideoTrack {
323
336
  quality: VideoQuality;
324
337
  bitrate?: Kbps;
325
338
  size?: IRectangle;
339
+ fps?: number;
326
340
  }
327
341
  interface ITextTrackBase {
328
342
  type: 'external' | 'internal';
@@ -369,4 +383,5 @@ export declare enum HttpConnectionType {
369
383
  HTTP2 = "http2",
370
384
  QUIC = "quic"
371
385
  }
386
+ export declare type FpsByQuality = Partial<Record<VideoQuality, number>>;
372
387
  export {};
@@ -15,6 +15,7 @@ export default class DashIFProvider implements IProvider {
15
15
  private params;
16
16
  private textTracksManager;
17
17
  private videoTracks;
18
+ private frameRatesByFrameHeight;
18
19
  private isLive$;
19
20
  private maxSeekBackTime$;
20
21
  private availableFrom$;
@@ -11,6 +11,7 @@ export interface IRepresentation {
11
11
  initTo: number;
12
12
  codecs?: string;
13
13
  mimeType?: string;
14
+ fps?: number;
14
15
  bufferSize: number;
15
16
  bufferLength: number;
16
17
  name?: string;
@@ -24,6 +24,7 @@ export interface Representation {
24
24
  width: number;
25
25
  height: number;
26
26
  url: string;
27
+ fps?: number;
27
28
  }
28
29
  export interface Segment {
29
30
  status: SegmentStatus;
@@ -7,6 +7,7 @@ export declare type ManifestUrl = {
7
7
  url: string;
8
8
  bandwidth?: Kbps;
9
9
  size?: IRectangle;
10
+ fps?: number;
10
11
  };
11
12
  declare const extractQualities: (masterManifestUrl: string, baseUrl?: string) => Promise<ManifestUrl[]>;
12
13
  export default extractQualities;
@@ -0,0 +1 @@
1
+ export declare const parseFps: (frameRateValue: string) => number;