@vkontakte/videoplayer-core 2.0.154-dev.ffe03d52.0 → 2.0.154

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.154-dev.ffe03d52.0",
3
+ "version": "2.0.154",
4
4
  "author": "vk.com",
5
5
  "description": "Videoplayer core library based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -54,6 +54,6 @@
54
54
  "**/*.d.ts"
55
55
  ],
56
56
  "dependencies": {
57
- "@vkontakte/videoplayer-shared": "1.0.83-dev.ffe03d52.0"
57
+ "@vkontakte/videoplayer-shared": "1.0.83"
58
58
  }
59
59
  }
@@ -1,6 +1,6 @@
1
1
  import { IOptionalTuningConfig } from '../utils/tuningConfig';
2
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';
3
+ import { ChromecastState, HttpConnectionType, HttpConnectionMetrics, HttpDownloadMetrics, IAudioStream, IConfig, ICueSettings, IExternalTextTrack, IPlayer, ISeekRequest, ISources, ITextTrack, IVideoStream, IVideoTrack, PlaybackRate, PlaybackState, PredefinedQualityLimits, StartEnd, Surface, VideoFormat } from './types';
4
4
  import { IPlayerOptions } from '../utils/playerOptions';
5
5
  export default class Player implements IPlayer {
6
6
  private subscription;
@@ -31,6 +31,7 @@ export default class Player implements IPlayer {
31
31
  volume$: ValueSubject<number>;
32
32
  availableVideoStreams$: ValueSubject<IVideoStream[]>;
33
33
  currentVideoStream$: ValueSubject<IVideoStream | undefined>;
34
+ availableVideoTracks$: ValueSubject<IVideoTrack[]>;
34
35
  availableQualities$: ValueSubject<VideoQuality[]>;
35
36
  availableQualitiesFps$: ValueSubject<Partial<Record<VideoQuality, number>>>;
36
37
  currentQuality$: ValueSubject<VideoQuality | undefined>;
@@ -263,6 +263,7 @@ export interface IPlayerInfo {
263
263
  volume$: IValueObservable<number>;
264
264
  currentVideoStream$: IValueObservable<IVideoStream | undefined>;
265
265
  availableVideoStreams$: IValueObservable<IVideoStream[]>;
266
+ availableVideoTracks$: IValueObservable<IVideoTrack[]>;
266
267
  currentAudioStream$: IValueObservable<IAudioStream | undefined>;
267
268
  availableAudioStreams$: IValueObservable<IAudioStream[]>;
268
269
  /**
@@ -575,6 +576,7 @@ export interface IVideoTrack extends IBaseTrack {
575
576
  size?: IRectangle;
576
577
  fps?: number;
577
578
  streamId?: IVideoStream['id'];
579
+ tvDisabled?: boolean;
578
580
  }
579
581
  export interface IAudioStream {
580
582
  id: string;
@@ -1,6 +1,6 @@
1
1
  import { Representation, Segment, SegmentReference, Stream, TemplateSegment, TemplateSegmentReference, TextRepresentation } from '../../../providers/utils/parsers/types';
2
2
  import { IAudioStream, IAudioTrack, IInternalTextTrack, IVideoStream, IVideoTrack } from '../../../player/types';
3
- export declare const representationToVideoTrack: ({ id, width, height, bitrate, fps, quality: qualityString, streamId }: Representation) => IVideoTrack | undefined;
3
+ export declare const representationToVideoTrack: ({ id, width, height, bitrate, fps, quality: qualityString, streamId, tvDisabled }: Representation) => IVideoTrack | undefined;
4
4
  export declare const representationToAudioTrack: ({ id, bitrate }: Representation) => IAudioTrack;
5
5
  export declare const representationToTextTrack: ({ language, label }: Stream, { id, url, isAuto }: Representation & {
6
6
  url: string;
@@ -1 +1 @@
1
- export declare const destroy: (video: HTMLVideoElement) => void;
1
+ export declare const destroy: (video: HTMLVideoElement, clearVideoElementInnerHTML: boolean) => void;
@@ -1,5 +1,5 @@
1
1
  import { ITuningConfig } from '../../../utils/tuningConfig';
2
- type Constraints = Pick<ITuningConfig, 'audioVideoSyncRate' | 'disableYandexPiP'>;
3
- export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP }: Constraints) => HTMLVideoElement;
4
- export declare const dispose: (element: HTMLVideoElement) => void;
2
+ type Constraints = Pick<ITuningConfig, 'audioVideoSyncRate' | 'disableYandexPiP' | 'clearVideoElementInnerHTML'>;
3
+ export declare const allocate: (container: HTMLElement, { audioVideoSyncRate, disableYandexPiP, clearVideoElementInnerHTML }: Constraints) => HTMLVideoElement;
4
+ export declare const dispose: (element: HTMLVideoElement, keepElement?: boolean, clearVideoElementInnerHTML?: boolean) => void;
5
5
  export {};
@@ -23,6 +23,12 @@ export interface Representation {
23
23
  fps?: number;
24
24
  quality?: string;
25
25
  streamId?: IVideoStream['id'];
26
+ /**
27
+ * @see https://jira.vk.team/browse/UVP-9492
28
+ *
29
+ * помечает видео дорожку как неиспользуемую для телевизоров
30
+ */
31
+ tvDisabled?: boolean;
26
32
  }
27
33
  export interface TextRepresentation extends Representation {
28
34
  language: string;
@@ -1,4 +1,4 @@
1
1
  import { ITuningConfig } from '../../utils/tuningConfig';
2
2
  import { Manifest } from './parsers/types';
3
3
  /** @mutates streams.video */
4
- export declare const applyVideoStreamRepresentaionsFilter: (streams: Manifest["streams"], videoStreamRepresentaionsFilter: ITuningConfig["dash"]["videoStreamRepresentaionsFilter"]) => void;
4
+ export declare const markVideoStreamRepresentaionsFilter: (streams: Manifest["streams"], videoStreamRepresentaionsFilter: ITuningConfig["dash"]["videoStreamRepresentaionsFilter"]) => void;
@@ -6,6 +6,18 @@ import { Byte, type ExactVideoQuality, Milliseconds, RecursivePartial, Seconds,
6
6
  export type ITuningConfig = {
7
7
  /** @deprecated */
8
8
  configName?: string[];
9
+ /**
10
+ * Если true, внутренний video элемент не будет уничтожаться при реините провайдера
11
+ * и при создании нового экземляра Player.
12
+ * Будет веcти себя аналогично элементу переданному снаружи
13
+ */
14
+ keepVideoElement: boolean;
15
+ /**
16
+ * Временный флаг для тестирования очистки video элемента
17
+ * Если true, при очистке будет вызван innerHTML = '' для очистки дочерних элементов трэков
18
+ * В противном случае они размножаются
19
+ */
20
+ clearVideoElementInnerHTML: boolean;
9
21
  throughputEstimator: {
10
22
  type: 'TwoEma' | 'EmaAndMa';
11
23
  emaAlphaSlow: number;