@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,60 +1,61 @@
|
|
|
1
|
-
import { IAudioTrack, IDashURLSource, IHLSSource, IInternalTextTrack, IVideoTrack, VideoCodec } from
|
|
2
|
-
import { IProviderSubscriptionInfo
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
1
|
+
import type { IAudioTrack, IDashURLSource, IHLSSource, IInternalTextTrack, IVideoTrack, VideoCodec } from "../../player/types";
|
|
2
|
+
import type { IProviderSubscriptionInfo } from "./lib/types";
|
|
3
|
+
import { ProviderState } from "./lib/types";
|
|
4
|
+
import type { CommonInit, Representation, Stream } from "../utils/parsers/types";
|
|
5
|
+
import type { IProvider, IProviderParams } from "../types";
|
|
6
|
+
import type { IObservableVideo } from "../utils/HTMLVideoElement/observable";
|
|
7
|
+
import { TrackHistory } from "../../utils/autoSelectTrack";
|
|
8
|
+
import type { IStateMachine } from "../../utils/StateMachine/types";
|
|
9
|
+
import type { ISubscription, ITracer, Milliseconds } from "@vkontakte/videoplayer-shared";
|
|
10
|
+
import { Player } from "./lib/player";
|
|
11
|
+
import { Scene3D } from "../../utils/3d/Scene3D";
|
|
12
|
+
import DroppedFramesManager from "../utils/HTMLVideoElement/DroppedFramesManager";
|
|
13
|
+
import TextTrackManager from "../utils/HTMLVideoElement/TextTrackManager";
|
|
14
|
+
import StallsManager from "../utils/StallsManager";
|
|
15
|
+
import { ElementSizeManager } from "./lib/ElementSizeManager";
|
|
15
16
|
type IParams = IProviderParams<IDashURLSource> & {
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
sourceHls?: IHLSSource;
|
|
18
|
+
forceVideoCodec?: VideoCodec;
|
|
18
19
|
};
|
|
19
20
|
export default abstract class BaseDashProvider implements IProvider {
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
21
|
+
scene3D: Scene3D | undefined;
|
|
22
|
+
protected subscription: ISubscription;
|
|
23
|
+
protected volumeSubscription: ISubscription;
|
|
24
|
+
protected videoState: IStateMachine<ProviderState>;
|
|
25
|
+
protected video: HTMLVideoElement;
|
|
26
|
+
protected observableVideo: IObservableVideo | null;
|
|
27
|
+
protected player: Player;
|
|
28
|
+
protected params: IParams;
|
|
29
|
+
protected tracer: ITracer;
|
|
30
|
+
protected textTracksManager: TextTrackManager;
|
|
31
|
+
protected droppedFramesManager: DroppedFramesManager;
|
|
32
|
+
protected stallsManager: StallsManager;
|
|
33
|
+
protected elementSizeManager: ElementSizeManager;
|
|
34
|
+
protected videoTracksMap: Map<IVideoTrack, {
|
|
35
|
+
stream: Stream;
|
|
36
|
+
representation: Representation;
|
|
37
|
+
}>;
|
|
38
|
+
protected audioTracksMap: Map<IAudioTrack, {
|
|
39
|
+
stream: Stream;
|
|
40
|
+
representation: Representation;
|
|
41
|
+
}>;
|
|
42
|
+
protected textTracksMap: Map<IInternalTextTrack, {
|
|
43
|
+
stream: Stream;
|
|
44
|
+
representation: Representation;
|
|
45
|
+
}>;
|
|
46
|
+
protected videoStreamsMap: Map<Stream, IVideoTrack[]>;
|
|
47
|
+
protected audioStreamsMap: Map<Stream, IAudioTrack[]>;
|
|
48
|
+
protected videoTrackSwitchHistory: TrackHistory<IVideoTrack>;
|
|
49
|
+
protected audioTrackSwitchHistory: TrackHistory<IAudioTrack>;
|
|
50
|
+
constructor(params: IParams);
|
|
51
|
+
protected abstract seek(position: Milliseconds, forcePrecise: boolean): void;
|
|
52
|
+
protected getProviderSubscriptionInfo(): IProviderSubscriptionInfo;
|
|
53
|
+
protected subscribe(): void;
|
|
54
|
+
protected selectVideoAudioRepresentations(): [Representation, Representation | undefined] | undefined;
|
|
55
|
+
protected prepare(manifestOffset?: number): void;
|
|
56
|
+
protected syncPlayback: () => void;
|
|
57
|
+
protected init3DScene: (init: CommonInit) => void;
|
|
58
|
+
protected destroy3DScene: () => void;
|
|
59
|
+
protected playIfAllowed(): void;
|
|
60
|
+
destroy(): void;
|
|
59
61
|
}
|
|
60
|
-
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Milliseconds } from
|
|
2
|
-
import { IParams } from
|
|
3
|
-
import BaseDashProvider from
|
|
1
|
+
import type { Milliseconds } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import type { IParams } from "./lib/types";
|
|
3
|
+
import BaseDashProvider from "./baseDashProvider";
|
|
4
4
|
export default class DashCmafLiveProvider extends BaseDashProvider {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
constructor(params: IParams);
|
|
6
|
+
protected subscribe(): void;
|
|
7
|
+
protected seek(position: Milliseconds): void;
|
|
8
8
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Milliseconds } from
|
|
2
|
-
import BaseDashProvider from
|
|
1
|
+
import type { Milliseconds } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import BaseDashProvider from "./baseDashProvider";
|
|
3
3
|
export default class DashProvider extends BaseDashProvider {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
protected subscribe(): void;
|
|
5
|
+
protected seek(position: Milliseconds, forcePrecise: boolean): void;
|
|
6
6
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default as DashProvider } from
|
|
2
|
-
export { default as DashCmafLiveProvider } from
|
|
1
|
+
export { default as DashProvider } from "./dashProvider";
|
|
2
|
+
export { default as DashCmafLiveProvider } from "./dashCmafLiveProvider";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { IObservableVideo } from
|
|
2
|
-
import { IListener, IRectangle, ISubscription,
|
|
1
|
+
import type { IObservableVideo } from "../../utils/HTMLVideoElement/observable";
|
|
2
|
+
import type { IListener, IRectangle, ISubscription, IValueSubject } from "@vkontakte/videoplayer-shared";
|
|
3
3
|
interface ConnectParams {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
video: HTMLVideoElement;
|
|
5
|
+
observableVideo: IObservableVideo;
|
|
6
6
|
}
|
|
7
7
|
export declare class ElementSizeManager {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
private readonly subscription;
|
|
9
|
+
private readonly pipSize$;
|
|
10
|
+
private readonly videoSize$;
|
|
11
|
+
private readonly elementSize$;
|
|
12
|
+
private pictureInPictureWindowRemoveEventListener;
|
|
13
|
+
connect({ observableVideo, video }: ConnectParams): void;
|
|
14
|
+
getValue(): IRectangle<number> | undefined;
|
|
15
|
+
subscribe(listener: IListener<IRectangle<number> | undefined>, error?: IListener<Error | unknown>): ISubscription;
|
|
16
|
+
getObservable(): IValueSubject<IRectangle<number> | undefined>;
|
|
17
|
+
destroy(): void;
|
|
18
18
|
}
|
|
19
19
|
export {};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { IValueSubject, Milliseconds } from
|
|
2
|
-
import { Dependencies } from
|
|
3
|
-
import { Manifest, Stream, TextRepresentation } from
|
|
1
|
+
import type { IValueSubject, Milliseconds } from "@vkontakte/videoplayer-shared";
|
|
2
|
+
import type { Dependencies } from "./buffer";
|
|
3
|
+
import type { Manifest, Stream, TextRepresentation } from "../../utils/parsers/types";
|
|
4
4
|
export declare class LiveTextManager {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
5
|
+
currentRepresentation$: IValueSubject<TextRepresentation | null>;
|
|
6
|
+
private readonly maxRepresentations;
|
|
7
|
+
private representationsCursor;
|
|
8
|
+
private representations;
|
|
9
|
+
private readonly getCurrentPosition;
|
|
10
|
+
private currentSegment;
|
|
11
|
+
constructor(streams: Stream[], deps: Pick<Dependencies, "getCurrentPosition">);
|
|
12
|
+
updateLive(manifest: Manifest | null): void;
|
|
13
|
+
seekLive(streams?: Stream[]): void;
|
|
14
|
+
maintain(currentPosition?: Milliseconds | undefined): void;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
/**
|
|
17
|
+
* @todo support multi-streams
|
|
18
|
+
* @see https://jira.mvk.com/browse/VP-2420
|
|
19
|
+
*/
|
|
20
|
+
private processStreams;
|
|
21
|
+
static isSupported(streams?: Stream[]): boolean;
|
|
22
|
+
private static filterRepresentations;
|
|
23
23
|
}
|
|
@@ -1,128 +1,129 @@
|
|
|
1
|
-
import { ITuningConfig } from
|
|
2
|
-
import { IError, IRange, ISubject, IValueSubject, Milliseconds } from
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import type { ITuningConfig } from "../../../utils/tuningConfig";
|
|
2
|
+
import type { IError, IRange, ISubject, IValueSubject, Milliseconds } from "@vkontakte/videoplayer-shared";
|
|
3
|
+
import { abortable } from "@vkontakte/videoplayer-shared";
|
|
4
|
+
import type { Fetcher } from "./fetcher";
|
|
5
|
+
import type { CommonInit, Manifest, Representation, Stream, StreamKind } from "../../utils/parsers/types";
|
|
5
6
|
export interface Dependencies {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
fetcher: Fetcher;
|
|
8
|
+
tuning: ITuningConfig;
|
|
9
|
+
getCurrentPosition: () => Milliseconds | undefined;
|
|
10
|
+
isActiveLowLatency: () => boolean;
|
|
11
|
+
compatibilityMode?: boolean;
|
|
12
|
+
manifest: Manifest | null;
|
|
12
13
|
}
|
|
13
14
|
export interface Gap extends IRange<Milliseconds> {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
representation: Representation["id"];
|
|
16
|
+
/**
|
|
17
|
+
* дырки, которые не нужно удалять при парсинге буфера (те `detectGapsWhenIdle`).
|
|
18
|
+
* те, например, которые были обнаружены при парсинге сегментов из манифеста.
|
|
19
|
+
*
|
|
20
|
+
* в функции `detectGapsWhenIdle` мы сравниваем ранее найденные дырки с данными буфера,
|
|
21
|
+
* проблема в том, что не смотря на то, что буфер может показать, что как будто дырки нет,
|
|
22
|
+
* по факту, найденная в манифесте дырка, скорее всего, никуда не делась и это приведет к зависанию видео.
|
|
23
|
+
*/
|
|
24
|
+
persistent: boolean;
|
|
24
25
|
}
|
|
25
26
|
export declare class BufferManager {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
27
|
+
currentLiveSegmentServerLatency$: IValueSubject<number>;
|
|
28
|
+
currentLowLatencySegmentLength$: IValueSubject<number>;
|
|
29
|
+
currentSegmentLength$: IValueSubject<number>;
|
|
30
|
+
onLastSegment$: IValueSubject<boolean>;
|
|
31
|
+
fullyBuffered$: IValueSubject<boolean>;
|
|
32
|
+
playingRepresentation$: IValueSubject<Representation["id"] | undefined>;
|
|
33
|
+
playingRepresentationInit$: IValueSubject<CommonInit | undefined>;
|
|
34
|
+
error$: ISubject<IError>;
|
|
35
|
+
gaps: Gap[];
|
|
36
|
+
private subscription;
|
|
37
|
+
private kind;
|
|
38
|
+
private initData;
|
|
39
|
+
private parsedInitData;
|
|
40
|
+
private representations;
|
|
41
|
+
private segments;
|
|
42
|
+
private allInitsLoaded;
|
|
43
|
+
private activeSegments;
|
|
44
|
+
private mediaSource;
|
|
45
|
+
private playingRepresentationId;
|
|
46
|
+
private downloadingRepresentationId;
|
|
47
|
+
private switchingToRepresentationId;
|
|
48
|
+
private sourceBuffer;
|
|
49
|
+
private downloadAbortController;
|
|
50
|
+
private switchAbortController;
|
|
51
|
+
private destroyAbortController;
|
|
52
|
+
private useSmartRepresentationSwitch;
|
|
53
|
+
private readonly getCurrentPosition;
|
|
54
|
+
private readonly isActiveLowLatency;
|
|
55
|
+
private tuning;
|
|
56
|
+
private forwardBufferTarget;
|
|
57
|
+
private fetcher;
|
|
58
|
+
private bufferLimit;
|
|
59
|
+
private sourceBufferTaskQueue;
|
|
60
|
+
private gapDetectionIdleCallback;
|
|
61
|
+
private initLoadIdleCallback;
|
|
62
|
+
private failedDownloads;
|
|
63
|
+
private baseUrls;
|
|
64
|
+
private baseUrlsIndex;
|
|
65
|
+
private compatibilityMode;
|
|
66
|
+
private preloadOnly;
|
|
67
|
+
private isLive;
|
|
68
|
+
private liveUpdateSegmentIndex;
|
|
69
|
+
private liveInitialAdditionalOffset;
|
|
70
|
+
private isSeekingLive;
|
|
71
|
+
private index;
|
|
72
|
+
private lastDataObtainedTimestampMs;
|
|
73
|
+
private loadByteRangeSegmentsTimeoutId;
|
|
74
|
+
constructor(kind: StreamKind, mediaSource: MediaSource, representations: Representation[], { fetcher, tuning, getCurrentPosition, isActiveLowLatency, compatibilityMode, manifest }: Dependencies);
|
|
75
|
+
startWith: ReturnType<typeof abortable<[Representation["id"]]>>;
|
|
76
|
+
switchToWithPreviousAbort(newRepresentationId: Representation["id"], dropBuffer?: boolean): void;
|
|
77
|
+
switchTo: ReturnType<typeof abortable<[Representation["id"], boolean | undefined], void>>;
|
|
78
|
+
switchToOld: ReturnType<typeof abortable<[Representation["id"], boolean | undefined], void>>;
|
|
79
|
+
warmUpMediaSource(): void;
|
|
80
|
+
abort(): Promise<boolean>;
|
|
81
|
+
maintain(currentPosition?: Milliseconds | undefined): void;
|
|
82
|
+
get lastDataObtainedTimestamp(): number;
|
|
83
|
+
private searchGaps;
|
|
84
|
+
private getActualLiveStartingSegments;
|
|
85
|
+
getLiveSegmentsToLoadState(manifest: Manifest | null): IRange<Milliseconds> | undefined;
|
|
86
|
+
seekLive: ReturnType<typeof abortable<[Stream[]]>>;
|
|
87
|
+
updateLive(manifest: Manifest | null): void;
|
|
88
|
+
proceedLowLatencyLive(): void;
|
|
89
|
+
calculateDurationFromSegments(): number;
|
|
90
|
+
setSmartRepresentationSwitch(state: boolean): void;
|
|
91
|
+
private updateLowLatencyLiveIfNeeded;
|
|
92
|
+
findSegmentStartTime(position: Milliseconds): Milliseconds | undefined;
|
|
93
|
+
setTarget(time: Milliseconds): void;
|
|
94
|
+
setPreloadOnly(preloadOnly: boolean): void;
|
|
95
|
+
destroy(): void;
|
|
96
|
+
private selectForwardBufferSegments;
|
|
97
|
+
private selectForwardBufferSegmentsLive;
|
|
98
|
+
private selectForwardBufferSegmentsRecord;
|
|
99
|
+
private loadSegments;
|
|
100
|
+
private loadTemplateSegment;
|
|
101
|
+
private updateRepresentationsBaseUrlIfNeeded;
|
|
102
|
+
private loadByteRangeSegments;
|
|
103
|
+
private prepareByteRangeFetchSegmentParams;
|
|
104
|
+
private prepareTemplateFetchSegmentParams;
|
|
105
|
+
private abortActiveSegments;
|
|
106
|
+
private onSomeTemplateDataLoaded;
|
|
107
|
+
/**
|
|
108
|
+
* Закидываем в буфер сегменты атомарнее чем сегмент целиком. Например, по боксам в мпеге и по блокам в вебме.
|
|
109
|
+
* Таким образом не ждём его полной загрузки и готовы играть его намного быстрее
|
|
110
|
+
* @param dataView – данные, размер буфера – весь запрос
|
|
111
|
+
* @param globalFrom – Отступ dataView от начала файла, совпадает с отсупами сегментов
|
|
112
|
+
* @param loaded – Объём загруженных в dataView данных (всё что больше – пока нули)
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
private onSomeByteRangesDataLoaded;
|
|
116
|
+
private onSegmentFullyAppended;
|
|
117
|
+
private abortSegment;
|
|
118
|
+
private loadNextInit;
|
|
119
|
+
private loadInit;
|
|
120
|
+
private dropBuffer;
|
|
121
|
+
private pruneBuffer;
|
|
122
|
+
private abortBuffer;
|
|
123
|
+
getDebugBufferState(): IRange<Milliseconds> | undefined;
|
|
124
|
+
getForwardBufferDuration(currentPosition?: Milliseconds | undefined): Milliseconds;
|
|
125
|
+
private detectGaps;
|
|
126
|
+
private detectGapsWhenIdle;
|
|
127
|
+
private checkEjectedSegments;
|
|
128
|
+
private handleAsyncError;
|
|
128
129
|
}
|