@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.
- package/es2015.cjs +83 -136
- package/es2015.esm.js +77 -130
- package/es2018.cjs +77 -130
- package/es2018.esm.js +75 -128
- package/es2024.cjs +83 -136
- package/es2024.esm.js +81 -134
- package/esnext.cjs +83 -136
- package/esnext.esm.js +81 -134
- package/evergreen.esm.js +82 -135
- package/package.json +2 -2
- package/types/enums/AndroidPreferredFormat.d.ts +6 -6
- package/types/enums/IOSPreferredFormat.d.ts +2 -2
- package/types/enums/WebmCodecStrategy.d.ts +5 -5
- package/types/index.d.ts +16 -13
- package/types/player/Player.d.ts +219 -210
- package/types/player/types.d.ts +595 -591
- package/types/player/utils/optimisticPosition.d.ts +7 -7
- package/types/player/utils/selectContainer.d.ts +1 -1
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiConnector.d.ts +107 -106
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiInitializer.d.ts +23 -23
- package/types/providers/ChromecastPresentationApiProvider/ChromecastPresentationApiProvider.d.ts +34 -34
- package/types/providers/ChromecastPresentationApiProvider/ProgressTicker.d.ts +9 -9
- package/types/providers/ChromecastPresentationApiProvider/index.d.ts +3 -3
- package/types/providers/ChromecastPresentationApiProvider/types.d.ts +31 -31
- package/types/providers/ChromecastPresentationApiProvider/utils.d.ts +1 -1
- package/types/providers/ChromecastProvider/ChromecastInitializer/index.d.ts +22 -22
- package/types/providers/ChromecastProvider/ChromecastInitializer/types.d.ts +22 -22
- package/types/providers/ChromecastProvider/index.d.ts +23 -23
- package/types/providers/ChromecastProvider/types.d.ts +7 -7
- package/types/providers/ChromecastProvider/utils.d.ts +1 -1
- package/types/providers/DashLiveProvider/DashLiveProvider.d.ts +33 -33
- package/types/providers/DashLiveProvider/index.d.ts +1 -1
- package/types/providers/DashLiveProvider/types.d.ts +17 -17
- package/types/providers/DashLiveProvider/utils/FilesFetcher.d.ts +23 -23
- package/types/providers/DashLiveProvider/utils/LiveDashPlayer.d.ts +149 -150
- package/types/providers/DashLiveProvider/utils/ThroughputEstimator.d.ts +12 -30
- package/types/providers/DashLiveProvider/utils/liveDashPlayerUtil.d.ts +19 -22
- package/types/providers/DashProvider/baseDashProvider.d.ts +57 -56
- package/types/providers/DashProvider/dashCmafLiveProvider.d.ts +6 -6
- package/types/providers/DashProvider/dashProvider.d.ts +4 -4
- package/types/providers/DashProvider/index.d.ts +2 -2
- package/types/providers/DashProvider/lib/ElementSizeManager.d.ts +14 -14
- package/types/providers/DashProvider/lib/LiveTextManager.d.ts +21 -21
- package/types/providers/DashProvider/lib/buffer.d.ts +123 -122
- package/types/providers/DashProvider/lib/fetcher.d.ts +70 -69
- package/types/providers/DashProvider/lib/player.d.ts +109 -107
- package/types/providers/DashProvider/lib/sourceBufferTaskQueue.d.ts +17 -17
- package/types/providers/DashProvider/lib/types.d.ts +20 -20
- package/types/providers/DashProvider/lib/utils.d.ts +4 -4
- package/types/providers/DashProviderVirtual/baseDashProvider.d.ts +58 -57
- package/types/providers/DashProviderVirtual/consts.d.ts +2 -2
- package/types/providers/DashProviderVirtual/dashCmafLiveProvider.d.ts +8 -8
- package/types/providers/DashProviderVirtual/dashProvider.d.ts +6 -6
- package/types/providers/DashProviderVirtual/index.d.ts +2 -2
- package/types/providers/DashProviderVirtual/lib/ElementSizeManager.d.ts +15 -14
- package/types/providers/DashProviderVirtual/lib/LiveTextManager.d.ts +21 -21
- package/types/providers/DashProviderVirtual/lib/buffer/nativeBufferManager.d.ts +17 -17
- package/types/providers/DashProviderVirtual/lib/buffer/sourceBufferTaskQueue.d.ts +17 -17
- package/types/providers/DashProviderVirtual/lib/buffer/types.d.ts +39 -39
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/baseVirtualBufferManager.d.ts +94 -92
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/byteRangeVirtualBufferManager.d.ts +19 -19
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/liveVirtualBuffer.d.ts +25 -25
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/templateVirtualBufferManager.d.ts +19 -19
- package/types/providers/DashProviderVirtual/lib/buffer/virtualBuffer/virtualBufferFactory.d.ts +4 -4
- package/types/providers/DashProviderVirtual/lib/fetcher.d.ts +68 -67
- package/types/providers/DashProviderVirtual/lib/player/basePlayer.d.ts +103 -100
- package/types/providers/DashProviderVirtual/lib/player/livePlayer.d.ts +34 -34
- package/types/providers/DashProviderVirtual/lib/player/player.d.ts +9 -9
- package/types/providers/DashProviderVirtual/lib/player/types.d.ts +13 -13
- package/types/providers/DashProviderVirtual/lib/types.d.ts +20 -20
- package/types/providers/DashProviderVirtual/lib/utils.d.ts +4 -4
- package/types/providers/HlsLiveProvider/LiveTextManager.d.ts +35 -35
- package/types/providers/HlsLiveProvider/index.d.ts +29 -28
- package/types/providers/HlsLiveProvider/seekBackTimeExtractor.d.ts +1 -1
- package/types/providers/HlsProvider/index.d.ts +19 -19
- package/types/providers/HlsProvider/manifestDataExtractor.d.ts +13 -13
- package/types/providers/MpegProvider/index.d.ts +17 -17
- package/types/providers/ProviderContainer/index.d.ts +47 -45
- package/types/providers/ProviderContainer/types.d.ts +16 -16
- package/types/providers/ProviderContainer/utils/formatsSupport.d.ts +9 -9
- package/types/providers/ProviderContainer/utils/playbackHangup.d.ts +9 -8
- package/types/providers/WebRTCLiveProvider/WebRTCLiveClient.d.ts +185 -185
- package/types/providers/WebRTCLiveProvider/WebRTCLiveProvider.d.ts +58 -57
- package/types/providers/WebRTCLiveProvider/interface/WebRTCLiveClientOptions.d.ts +6 -6
- package/types/providers/types.d.ts +103 -102
- package/types/providers/utils/HTMLVideoElement/DroppedFramesManager.d.ts +40 -39
- package/types/providers/utils/HTMLVideoElement/TextTrackManager.d.ts +28 -28
- package/types/providers/utils/HTMLVideoElement/forcePlay.d.ts +5 -5
- package/types/providers/utils/HTMLVideoElement/observable.d.ts +25 -25
- package/types/providers/utils/HTMLVideoElement/pool.d.ts +5 -4
- package/types/providers/utils/LiveOffset/index.d.ts +12 -12
- package/types/providers/utils/LiveOffset/types.d.ts +8 -8
- package/types/providers/utils/StallsManager.d.ts +49 -49
- package/types/providers/utils/debug.d.ts +13 -12
- package/types/providers/utils/extractConnectionHeaders.d.ts +3 -3
- package/types/providers/utils/generateLiveUrl.d.ts +4 -4
- package/types/providers/utils/guessNetworkErrorCause.d.ts +1 -1
- package/types/providers/utils/mergeIntervals.d.ts +1 -1
- package/types/providers/utils/okQualityStringToVideoQuality.d.ts +1 -1
- package/types/providers/utils/parsers/ietf/index.d.ts +8 -8
- package/types/providers/utils/parsers/index.d.ts +1 -1
- package/types/providers/utils/parsers/mpd.d.ts +1 -1
- package/types/providers/utils/parsers/mpeg/BoxModel.d.ts +18 -17
- package/types/providers/utils/parsers/mpeg/BoxParser.d.ts +15 -15
- package/types/providers/utils/parsers/mpeg/BoxTypeEnum.d.ts +27 -27
- package/types/providers/utils/parsers/mpeg/box.d.ts +68 -68
- package/types/providers/utils/parsers/mpeg/boxes/avc1.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/equi.d.ts +18 -18
- package/types/providers/utils/parsers/mpeg/boxes/ftyp.d.ts +14 -14
- package/types/providers/utils/parsers/mpeg/boxes/index.d.ts +27 -26
- package/types/providers/utils/parsers/mpeg/boxes/mdat.d.ts +12 -12
- package/types/providers/utils/parsers/mpeg/boxes/mdia.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/mfhd.d.ts +8 -8
- package/types/providers/utils/parsers/mpeg/boxes/minf.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/moof.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/moov.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/mvhd.d.ts +32 -32
- package/types/providers/utils/parsers/mpeg/boxes/prhd.d.ts +13 -13
- package/types/providers/utils/parsers/mpeg/boxes/proj.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/sidx.d.ts +43 -43
- package/types/providers/utils/parsers/mpeg/boxes/st3d.d.ts +16 -16
- package/types/providers/utils/parsers/mpeg/boxes/stbl.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/stsd.d.ts +8 -8
- package/types/providers/utils/parsers/mpeg/boxes/sv3d.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/tfdt.d.ts +14 -14
- package/types/providers/utils/parsers/mpeg/boxes/tfhd.d.ts +19 -19
- package/types/providers/utils/parsers/mpeg/boxes/tkhd.d.ts +39 -39
- package/types/providers/utils/parsers/mpeg/boxes/traf.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/trak.d.ts +5 -5
- package/types/providers/utils/parsers/mpeg/boxes/trun.d.ts +28 -28
- package/types/providers/utils/parsers/mpeg/boxes/unknown.d.ts +4 -5
- package/types/providers/utils/parsers/mpeg/boxes/uuid.d.ts +10 -10
- package/types/providers/utils/parsers/mpeg/fullBox.d.ts +12 -12
- package/types/providers/utils/parsers/mpeg/isobmff.d.ts +7 -7
- package/types/providers/utils/parsers/types.d.ts +137 -139
- package/types/providers/utils/parsers/webm/ebml.d.ts +62 -62
- package/types/providers/utils/parsers/webm/webm.d.ts +1 -1
- package/types/providers/utils/restorePlaybackRateInSafari.d.ts +17 -17
- package/types/providers/utils/syncDesiredState.d.ts +10 -10
- package/types/providers/utils/syncPlaybackState.d.ts +2 -2
- package/types/providers/utils/videoStreamRepresentaionsFilter.d.ts +2 -2
- package/types/utils/3d/Camera3D.d.ts +11 -11
- package/types/utils/3d/CameraRotationManager.d.ts +59 -59
- package/types/utils/3d/Scene3D.d.ts +129 -129
- package/types/utils/3d/types.d.ts +14 -14
- package/types/utils/ClientChecker/ClientChecker.d.ts +19 -19
- package/types/utils/ClientChecker/index.d.ts +2 -2
- package/types/utils/ClientChecker/services/AudioChecker.d.ts +7 -7
- package/types/utils/ClientChecker/services/BrowserChecker.d.ts +36 -36
- package/types/utils/ClientChecker/services/DeviceChecker.d.ts +38 -38
- package/types/utils/ClientChecker/services/DisplayChecker.d.ts +20 -20
- package/types/utils/ClientChecker/services/VideoChecker.d.ts +35 -35
- package/types/utils/ClientChecker/types/checker.d.ts +1 -1
- package/types/utils/ClientChecker/types/currentClientBrowser.d.ts +10 -10
- package/types/utils/ClientChecker/types/currentClientDevice.d.ts +8 -8
- package/types/utils/ClientChecker/types/userAgentData.d.ts +21 -21
- package/types/utils/StateMachine/StateMachine.d.ts +17 -17
- package/types/utils/StateMachine/types.d.ts +56 -56
- package/types/utils/StatefulIterator/index.d.ts +13 -13
- package/types/utils/ThroughputEstimator.d.ts +22 -22
- package/types/utils/VolumeMultiplierManager/VolumeMultiplierManager.d.ts +20 -20
- package/types/utils/VolumeMultiplierManager/index.d.ts +1 -1
- package/types/utils/autoSelectTrack.d.ts +28 -27
- package/types/utils/buffer/createTimeRanges.d.ts +2 -1
- package/types/utils/buffer/getBufferedRangeForPosition.d.ts +2 -2
- package/types/utils/buffer/getForwardBufferDuration.d.ts +1 -1
- package/types/utils/buffer/getTotalBufferDuration.d.ts +1 -1
- package/types/utils/buffer/isPositionBuffered.d.ts +1 -1
- package/types/utils/buffer/isSourceBufferValid.d.ts +1 -1
- package/types/utils/changePlaybackRate.d.ts +1 -1
- package/types/utils/decodingInfoLogger.d.ts +1 -1
- package/types/utils/mediaSource.d.ts +1 -5
- package/types/utils/observeElementVisibility.d.ts +1 -1
- package/types/utils/playbackTelemetry.d.ts +4 -4
- package/types/utils/playerOptions.d.ts +3 -3
- package/types/utils/qualityLimits.d.ts +15 -14
- package/types/utils/setStateWithSubscribe.d.ts +6 -3
- package/types/utils/smoothedValue/baseSmoothedValue.d.ts +16 -16
- package/types/utils/smoothedValue/emaAndMaSmoothedValue.d.ts +5 -5
- package/types/utils/smoothedValue/emaTopExtremumValue.d.ts +8 -8
- package/types/utils/smoothedValue/smoothedValueFactory.d.ts +4 -4
- package/types/utils/smoothedValue/twoEmaSmoothedValue.d.ts +6 -6
- package/types/utils/smoothedValue/types.d.ts +16 -16
- package/types/utils/tuningConfig.d.ts +304 -287
- package/types/utils/videoFormat.d.ts +1 -1
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { IInternalTextTrack } from
|
|
2
|
-
import { IValueSubject, Milliseconds, IError, ISubject } from
|
|
3
|
-
import { HLSManifestData } from
|
|
1
|
+
import type { IInternalTextTrack } from "../../player/types";
|
|
2
|
+
import type { IValueSubject, Milliseconds, IError, ISubject } from "@vkontakte/videoplayer-shared";
|
|
3
|
+
import type { HLSManifestData } from "../HlsProvider/manifestDataExtractor";
|
|
4
4
|
type FetchManifestData = (url: string, init?: RequestInit) => Promise<HLSManifestData>;
|
|
5
5
|
export declare class LiveTextManager {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
6
|
+
private readonly params;
|
|
7
|
+
private readonly subscription;
|
|
8
|
+
private readonly abortControllers;
|
|
9
|
+
/** в случае перемотки будет сохранена актуальная ссылка "наконечника" стрима */
|
|
10
|
+
private prepareUrl;
|
|
11
|
+
private currentTextTrackData;
|
|
12
|
+
availableTextTracks$: IValueSubject<IInternalTextTrack[] | null>;
|
|
13
|
+
getCurrentTime$: IValueSubject<(() => number) | null>;
|
|
14
|
+
error$: ISubject<IError>;
|
|
15
|
+
constructor(liveTime$: IValueSubject<Milliseconds | undefined>, video: HTMLVideoElement, fetchManifestData: FetchManifestData, sourceUrl: string, downloadThreshold: number);
|
|
16
|
+
destroy(): void;
|
|
17
|
+
/**
|
|
18
|
+
* одноименный метод из провайдера, который дергаем на перемотке,
|
|
19
|
+
* чтобы синхронизировать субтитры с видео\аудио дорожками
|
|
20
|
+
*/
|
|
21
|
+
prepare(url: string): Promise<void>;
|
|
22
|
+
/** тут, на самом деле, мы получаем ссылку на плейлисты для текстовых треков */
|
|
23
|
+
processTextTracks(textTracks: IInternalTextTrack[], baseUrl: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* @todo - пока только с 1 стримом работает
|
|
26
|
+
*/
|
|
27
|
+
private parseTextTracks;
|
|
28
|
+
/** парсим плейлист и получаем список треков */
|
|
29
|
+
private parsePlaylist;
|
|
30
|
+
/** забирает значение (value) строки в плейлисте */
|
|
31
|
+
private extractPlaylistRowValue;
|
|
32
|
+
/** обновляет ссылку на текущий сегмент субтитров для UI */
|
|
33
|
+
private processLiveTime;
|
|
34
|
+
/** догружает актуальные сабы */
|
|
35
|
+
private fetchNextManifestData;
|
|
36
|
+
private fetchManifestData;
|
|
37
|
+
private error;
|
|
38
38
|
}
|
|
39
39
|
export {};
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { IHLSLiveSource
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { IHLSLiveSource } from "../../player/types";
|
|
2
|
+
import { VideoFormat } from "../../player/types";
|
|
3
|
+
import type { IProvider, IProviderParams } from "../types";
|
|
4
|
+
import type { Milliseconds } from "@vkontakte/videoplayer-shared";
|
|
4
5
|
type Params = IProviderParams<IHLSLiveSource> & {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
config: {
|
|
7
|
+
maxPausedTime: Milliseconds;
|
|
8
|
+
};
|
|
9
|
+
format: VideoFormat.HLS_LIVE | VideoFormat.HLS_LIVE_CMAF;
|
|
9
10
|
};
|
|
10
11
|
export default class HlsLiveProvider implements IProvider {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
12
|
+
private subscription;
|
|
13
|
+
private volumeSubscription;
|
|
14
|
+
private videoState;
|
|
15
|
+
private video;
|
|
16
|
+
private params;
|
|
17
|
+
private textTracksManager;
|
|
18
|
+
private liveTextManager;
|
|
19
|
+
private masterManifest;
|
|
20
|
+
private manifests$;
|
|
21
|
+
private maxSeekBackTime$;
|
|
22
|
+
private liveOffset;
|
|
23
|
+
private manifestStartTime$;
|
|
24
|
+
constructor(params: Params);
|
|
25
|
+
private selectManifest;
|
|
26
|
+
private subscribe;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
private prepare;
|
|
29
|
+
private playIfAllowed;
|
|
30
|
+
private seek;
|
|
31
|
+
private syncPlayback;
|
|
32
|
+
private generateLiveUrl;
|
|
31
33
|
}
|
|
32
|
-
export {};
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { IHLSSource } from
|
|
2
|
-
import { IProvider, IProviderParams } from
|
|
1
|
+
import type { IHLSSource } from "../../player/types";
|
|
2
|
+
import type { IProvider, IProviderParams } from "../types";
|
|
3
3
|
type Params = IProviderParams<IHLSSource>;
|
|
4
4
|
export default class HlsProvider implements IProvider {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
5
|
+
private subscription;
|
|
6
|
+
private volumeSubscription;
|
|
7
|
+
private videoState;
|
|
8
|
+
private video;
|
|
9
|
+
private params;
|
|
10
|
+
private textTracksManager;
|
|
11
|
+
private masterManifest;
|
|
12
|
+
private manifests$;
|
|
13
|
+
private unmuteAfterBrowserResetsHappened;
|
|
14
|
+
constructor(params: Params);
|
|
15
|
+
private selectManifest;
|
|
16
|
+
private subscribe;
|
|
17
|
+
destroy(): void;
|
|
18
|
+
private prepare;
|
|
19
|
+
private playIfAllowed;
|
|
20
|
+
private seek;
|
|
21
|
+
private syncPlayback;
|
|
21
22
|
}
|
|
22
|
-
export {};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { Kbps, IRectangle, VideoQuality } from
|
|
2
|
-
import { IInternalTextTrack } from
|
|
1
|
+
import type { Kbps, IRectangle, VideoQuality } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import type { IInternalTextTrack } from "../../player/types";
|
|
3
3
|
export type ManifestUrl = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
id: string;
|
|
5
|
+
quality: VideoQuality;
|
|
6
|
+
url: string;
|
|
7
|
+
bandwidth?: Kbps;
|
|
8
|
+
size?: IRectangle;
|
|
9
|
+
fps?: number;
|
|
10
10
|
};
|
|
11
11
|
export type HLSManifestData = {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
qualityManifests: ManifestUrl[];
|
|
13
|
+
textTracks: IInternalTextTrack[];
|
|
14
14
|
};
|
|
15
15
|
type ExtractHLSManifestDataConfig = {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
manifestRetryMaxCount: number;
|
|
17
|
+
manifestRetryInterval: number;
|
|
18
|
+
manifestRetryMaxInterval: number;
|
|
19
19
|
};
|
|
20
20
|
declare const extractHLSManifestData: (masterManifestUrl: string, baseUrl: string | undefined, config: ExtractHLSManifestDataConfig, init?: RequestInit) => Promise<HLSManifestData>;
|
|
21
21
|
export default extractHLSManifestData;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { IMpegSource } from
|
|
2
|
-
import { IProvider, IProviderParams } from
|
|
1
|
+
import type { IMpegSource } from "../../player/types";
|
|
2
|
+
import type { IProvider, IProviderParams } from "../types";
|
|
3
3
|
type Params = IProviderParams<IMpegSource>;
|
|
4
4
|
export default class MpegProvider implements IProvider {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
private subscription;
|
|
6
|
+
private volumeSubscription;
|
|
7
|
+
private videoState;
|
|
8
|
+
private video;
|
|
9
|
+
private trackUrls;
|
|
10
|
+
private params;
|
|
11
|
+
private textTracksManager;
|
|
12
|
+
constructor(params: Params);
|
|
13
|
+
private subscribe;
|
|
14
|
+
destroy(): void;
|
|
15
|
+
private prepare;
|
|
16
|
+
private playIfAllowed;
|
|
17
|
+
private seek;
|
|
18
|
+
private syncPlayback;
|
|
19
|
+
private handleQualityLimitTransition;
|
|
19
20
|
}
|
|
20
|
-
export {};
|
|
@@ -1,49 +1,51 @@
|
|
|
1
|
-
import { IMetadata, ISources
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import type { IMetadata, ISources } from "../../player/types";
|
|
2
|
+
import { VideoFormat } from "../../player/types";
|
|
3
|
+
import type { ITuningConfig } from "../../utils/tuningConfig";
|
|
4
|
+
import type { IError, ISubject, IValueSubject, IRectangle } from "@vkontakte/videoplayer-shared";
|
|
5
|
+
import { ValueSubject } from "@vkontakte/videoplayer-shared";
|
|
6
|
+
import type { IDesiredState, IProviderDependencies, IProviderOutput } from "../types";
|
|
7
|
+
import type { IProviderContainer, IProviderEntry } from "./types";
|
|
6
8
|
interface IParams extends IProviderDependencies {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
container: HTMLElement;
|
|
10
|
+
sources: ISources;
|
|
11
|
+
meta: IMetadata;
|
|
12
|
+
failoverHosts: string[];
|
|
13
|
+
desiredState: IDesiredState;
|
|
14
|
+
tuning: ITuningConfig;
|
|
15
|
+
volumeMultiplier?: number;
|
|
16
|
+
panelSize?: IRectangle;
|
|
17
|
+
skipVideoElVolumeSync$: ValueSubject<boolean>;
|
|
15
18
|
}
|
|
16
19
|
export default class ProviderContainer implements IProviderContainer {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
20
|
+
current$: IValueSubject<IProviderEntry>;
|
|
21
|
+
providerError$: ISubject<IError>;
|
|
22
|
+
noAvailableProvidersError$: ISubject<VideoFormat | undefined>;
|
|
23
|
+
volumeMultiplierError$: ISubject<IError>;
|
|
24
|
+
providerOutput: IProviderOutput;
|
|
25
|
+
private subscription;
|
|
26
|
+
private screenFormatsIterator;
|
|
27
|
+
private chromecastFormatsIterator;
|
|
28
|
+
private videoCodecsIterator;
|
|
29
|
+
private log;
|
|
30
|
+
private tracer;
|
|
31
|
+
private params;
|
|
32
|
+
private failoverIndex;
|
|
33
|
+
private volumeMultiplierManager;
|
|
34
|
+
constructor(params: IParams);
|
|
35
|
+
init(): void;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
private initProvider;
|
|
38
|
+
private reinitProvider;
|
|
39
|
+
private switchToNextProvider;
|
|
40
|
+
private switchToNextVideoCodec;
|
|
41
|
+
private destroyProvider;
|
|
42
|
+
private createProvider;
|
|
43
|
+
private createScreenProvider;
|
|
44
|
+
private createChromecastProvider;
|
|
45
|
+
private chooseDestination;
|
|
46
|
+
private chooseFormat;
|
|
47
|
+
private skipFormat;
|
|
48
|
+
private handleNoFormatsError;
|
|
49
|
+
private applyFailoverHost;
|
|
50
|
+
private initProviderErrorHandling;
|
|
48
51
|
}
|
|
49
|
-
export {};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { ISubject, IValueObservable, IError } from
|
|
2
|
-
import { VideoDestination, VideoFormat } from
|
|
3
|
-
import { IProvider, IProviderOutput } from
|
|
1
|
+
import type { ISubject, IValueObservable, IError } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import type { VideoDestination, VideoFormat } from "../../player/types";
|
|
3
|
+
import type { IProvider, IProviderOutput } from "../types";
|
|
4
4
|
export interface IProviderContainer {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
current$: IValueObservable<IProviderEntry>;
|
|
6
|
+
providerError$: ISubject<IError>;
|
|
7
|
+
noAvailableProvidersError$: ISubject<VideoFormat | undefined>;
|
|
8
|
+
volumeMultiplierError$: ISubject<IError>;
|
|
9
|
+
providerOutput: IProviderOutput;
|
|
10
|
+
init(): void;
|
|
11
|
+
destroy(): void;
|
|
12
12
|
}
|
|
13
13
|
export type IProviderEntry = {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
type: VideoFormat;
|
|
15
|
+
provider: IProvider;
|
|
16
|
+
destination: VideoDestination;
|
|
17
17
|
} | {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
type: undefined;
|
|
19
|
+
provider?: undefined;
|
|
20
|
+
destination?: undefined;
|
|
21
21
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { VideoFormat, VideoCodec, AudioCodec } from
|
|
2
|
-
import { type ITuningConfig } from
|
|
1
|
+
import { VideoFormat, VideoCodec, AudioCodec } from "../../../player/types";
|
|
2
|
+
import { type ITuningConfig } from "../../../utils/tuningConfig";
|
|
3
3
|
type VodFormat = VideoFormat.MPEG | VideoFormat.DASH_SEP | VideoFormat.DASH_WEBM | VideoFormat.DASH_WEBM_AV1 | VideoFormat.DASH_STREAMS | VideoFormat.DASH_ONDEMAND | VideoFormat.HLS | VideoFormat.HLS_FMP4 | VideoFormat.HLS_ONDEMAND;
|
|
4
|
-
type Constraints = Pick<ITuningConfig,
|
|
4
|
+
type Constraints = Pick<ITuningConfig, "webmCodec" | "androidPreferredFormat" | "iosPreferredFormat" | "preferCMAF" | "preferWebRTC" | "preferMultiStream">;
|
|
5
5
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
* Все ONDEMAND форматы ниже готовых эквивалентов потому что ONDEMAND требует серверных ресурсов для нарезки.
|
|
7
|
+
* Из дашей VP9 (WEBM) самый оптимальный
|
|
8
|
+
* Интерливнутый (DASH) устарел и от него отказываемся в пользу DASH_SEP
|
|
9
|
+
* HLS нативно поддерживается в Сафари и на мобильных девайсах, при этом на андроиде он играет плохо
|
|
10
|
+
* MPEG – более-менее пуленепробиваемый формат который играет везде и есть у всех видео (за редкими исключениями), но он не адаптивный
|
|
11
|
+
*/
|
|
12
12
|
export declare const getFormatsPriority: ({ webmCodec, androidPreferredFormat, iosPreferredFormat, preferMultiStream }: Constraints) => VodFormat[];
|
|
13
13
|
type LiveFormat = VideoFormat.WEB_RTC_LIVE | VideoFormat.HLS_LIVE | VideoFormat.DASH_LIVE | VideoFormat.DASH_LIVE_CMAF | VideoFormat.HLS_LIVE_CMAF;
|
|
14
14
|
type AllLiveFormats = [LiveFormat, LiveFormat, LiveFormat, LiveFormat, LiveFormat];
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { IProviderEntry } from
|
|
2
|
-
import { IObservable
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import type { IProviderEntry } from "../types";
|
|
2
|
+
import type { IObservable } from "@vkontakte/videoplayer-shared";
|
|
3
|
+
import { Observable } from "@vkontakte/videoplayer-shared";
|
|
4
|
+
import type { IStateMachine } from "../../../utils/StateMachine/types";
|
|
5
|
+
import type { PlaybackState } from "../../../player/types";
|
|
5
6
|
interface IParams {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
desiredPlaybackState$: IStateMachine<PlaybackState>;
|
|
8
|
+
position$: IObservable<number>;
|
|
9
|
+
providerChanged$: IObservable<IProviderEntry>;
|
|
10
|
+
maxTransitionInterval: number;
|
|
10
11
|
}
|
|
11
12
|
declare const _default: (params: IParams) => Observable<string>;
|
|
12
13
|
export default _default;
|