@vkontakte/calls-sdk 2.8.7 → 2.8.8-dev.36567070.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/calls-sdk.cjs.js +11 -11
- package/calls-sdk.esm.js +11 -11
- package/classes/codec/IDecoder.d.ts +1 -1
- package/classes/codec/LibVPxDecoder.d.ts +1 -1
- package/classes/codec/WebCodecsDecoder.d.ts +1 -1
- package/classes/screenshare/BaseStreamBuilder.d.ts +2 -1
- package/classes/screenshare/ScreenCaptureReceiver.d.ts +4 -0
- package/classes/screenshare/StreamBuilder.d.ts +16 -4
- package/classes/screenshare/Utils.d.ts +1 -0
- package/package.json +1 -1
- package/static/Params.d.ts +18 -0
- package/static/WebRTCUtils.d.ts +7 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default interface IDecoder {
|
|
2
|
-
init(onFrameImage: (image: VideoFrame | ImageData) => void, onFrameError?: (error: unknown) => void): Promise<void>;
|
|
2
|
+
init(onFrameImage: (image: VideoFrame | ImageData) => void, onFrameError?: (error: unknown) => void, onKeyFrameRequested?: () => void): Promise<void>;
|
|
3
3
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
4
4
|
destroy(): void;
|
|
5
5
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import IDecoder from './IDecoder';
|
|
2
2
|
import WorkerBase from './WorkerBase';
|
|
3
3
|
export default class LibVPxDecoder extends WorkerBase implements IDecoder {
|
|
4
|
-
init(onFrameImage: (image: ImageData) => void, onFrameError: (error: unknown) => void): Promise<void>;
|
|
4
|
+
init(onFrameImage: (image: ImageData) => void, onFrameError: (error: unknown) => void, onKeyFrameRequested: () => void): Promise<void>;
|
|
5
5
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
6
6
|
destroy(): void;
|
|
7
7
|
static isBrowserSupported(): boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import IDecoder from './IDecoder';
|
|
2
2
|
import WorkerBase from './WorkerBase';
|
|
3
3
|
export default class WebCodecsDecoder extends WorkerBase implements IDecoder {
|
|
4
|
-
init(onFrameImage: (frame: VideoFrame) => void, onFrameError: (error: unknown) => void): Promise<void>;
|
|
4
|
+
init(onFrameImage: (frame: VideoFrame) => void, onFrameError: (error: unknown) => void, onKeyFrameRequested: () => void): Promise<void>;
|
|
5
5
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
6
6
|
destroy(): void;
|
|
7
7
|
static isBrowserSupported(): boolean;
|
|
@@ -8,9 +8,10 @@ export declare abstract class BaseStreamBuilder {
|
|
|
8
8
|
protected readonly _participantId: ParticipantId;
|
|
9
9
|
protected readonly _onStream: IOnStream;
|
|
10
10
|
protected readonly _onStat: IOnStat;
|
|
11
|
+
protected readonly _onKeyFrameRequested?: VoidFunction;
|
|
11
12
|
protected readonly _statScreenShareFirstFrame: StatScreenShareFirstFrame;
|
|
12
13
|
protected _chunks: FrameChunk[];
|
|
13
|
-
protected constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat);
|
|
14
|
+
protected constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat, onKeyFrameRequested?: VoidFunction);
|
|
14
15
|
appendChunk(chunk: FrameChunk): void;
|
|
15
16
|
destroy(): void;
|
|
16
17
|
protected abstract _processFrame(frame: FrameData): void;
|
|
@@ -10,6 +10,10 @@ export default class ScreenCaptureReceiver {
|
|
|
10
10
|
private _onStat;
|
|
11
11
|
constructor(datachannel: RTCDataChannel, participantIdRegistry: ParticipantIdRegistry, onStream: (streamId: string, stream: MediaStream) => void, onEos: (streamId: string) => void, onStat: IOnStat);
|
|
12
12
|
private _onDataChannelMessage;
|
|
13
|
+
/**
|
|
14
|
+
* Отправить запрос ключевого кадра в datachannel.
|
|
15
|
+
*/
|
|
16
|
+
private _requestKeyFrame;
|
|
13
17
|
close(participantId: ParticipantId): void;
|
|
14
18
|
destroy(): void;
|
|
15
19
|
static isBrowserSupported(): boolean;
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import { ParticipantId } from '../../types/Participant';
|
|
2
2
|
import { BaseStreamBuilder, FrameData, IOnStat, IOnStream } from './BaseStreamBuilder';
|
|
3
3
|
export default class StreamBuilder extends BaseStreamBuilder {
|
|
4
|
-
private
|
|
5
|
-
private
|
|
4
|
+
private _renderer;
|
|
5
|
+
private _decoder;
|
|
6
6
|
private _decoderReady;
|
|
7
7
|
private _decoderBusy;
|
|
8
8
|
private _decoderQueue;
|
|
9
|
-
private
|
|
10
|
-
constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat);
|
|
9
|
+
private _fpsMeter;
|
|
10
|
+
constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat, onKeyFrameRequested: VoidFunction);
|
|
11
11
|
protected _processFrame(frame: FrameData): void;
|
|
12
|
+
private _initFpsMeter;
|
|
13
|
+
/**
|
|
14
|
+
* Инициализация рендерера
|
|
15
|
+
* @param forceCanvasRenderer используется для принудительного создания CanvasRenderer, который работает с LibVPX
|
|
16
|
+
*/
|
|
17
|
+
private _initRenderer;
|
|
18
|
+
/**
|
|
19
|
+
* Инициализация декодера
|
|
20
|
+
* @param forceLibVPXDecoder используется для принудительного создания LibVPXDecoder
|
|
21
|
+
*/
|
|
22
|
+
private _initDecoder;
|
|
23
|
+
private _switchToLibVPXDecoder;
|
|
12
24
|
private _decodeQueue;
|
|
13
25
|
destroy(): void;
|
|
14
26
|
static isBrowserSupported(): boolean;
|
package/package.json
CHANGED
package/static/Params.d.ts
CHANGED
|
@@ -507,6 +507,18 @@ export type ParamsObject = {
|
|
|
507
507
|
* _По умолчанию: `false`_
|
|
508
508
|
*/
|
|
509
509
|
webtransportFF: boolean;
|
|
510
|
+
/**
|
|
511
|
+
* Скриншара
|
|
512
|
+
* Включить возможность запрашивать ключевой кадр декодером
|
|
513
|
+
* @hidden
|
|
514
|
+
*/
|
|
515
|
+
streamBuilderKeyFrameRequest: boolean;
|
|
516
|
+
/**
|
|
517
|
+
* Скриншара
|
|
518
|
+
* Включить переключение на LibVPX при проблемах с WebCodecsDecoder
|
|
519
|
+
* @hidden
|
|
520
|
+
*/
|
|
521
|
+
streamBuilderAutoSwitchToLibVPX: boolean;
|
|
510
522
|
/**
|
|
511
523
|
* Получен локальный стрим с камеры/микрофона
|
|
512
524
|
*/
|
|
@@ -1020,6 +1032,10 @@ export default abstract class Params {
|
|
|
1020
1032
|
static set webtransport(value: boolean);
|
|
1021
1033
|
static get webtransportFF(): boolean;
|
|
1022
1034
|
static set webtransportFF(value: boolean);
|
|
1035
|
+
static set streamBuilderKeyFrameRequest(value: boolean);
|
|
1036
|
+
static get streamBuilderKeyFrameRequest(): boolean;
|
|
1037
|
+
static set streamBuilderAutoSwitchToLibVPX(value: boolean);
|
|
1038
|
+
static get streamBuilderAutoSwitchToLibVPX(): boolean;
|
|
1023
1039
|
static toJSON(): {
|
|
1024
1040
|
apiKey: string;
|
|
1025
1041
|
apiEnv: string;
|
|
@@ -1051,5 +1067,7 @@ export default abstract class Params {
|
|
|
1051
1067
|
simulcast: boolean;
|
|
1052
1068
|
webtransport: boolean;
|
|
1053
1069
|
webtransportFF: boolean;
|
|
1070
|
+
streamBuilderKeyFrameRequest: boolean;
|
|
1071
|
+
streamBuilderAutoSwitchToLibVPX: boolean;
|
|
1054
1072
|
};
|
|
1055
1073
|
}
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -21,7 +21,9 @@ export declare enum FacingMode {
|
|
|
21
21
|
export type BrowserName = 'IE' | 'Edge' | 'Chrome' | 'Firefox' | 'Yandex' | 'Opera' | 'Sferum';
|
|
22
22
|
declare namespace WebRTCUtils {
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* До вызова этого метода бесполезно опрашивать другие публичные методы.
|
|
25
|
+
* - Инициализирует устройства.
|
|
26
|
+
* - Получает версию ОС
|
|
25
27
|
*/
|
|
26
28
|
function init(): Promise<void>;
|
|
27
29
|
/**
|
|
@@ -151,6 +153,10 @@ declare namespace WebRTCUtils {
|
|
|
151
153
|
* Имя операционной системы
|
|
152
154
|
*/
|
|
153
155
|
function os(): string;
|
|
156
|
+
/**
|
|
157
|
+
* Версия операционной системы
|
|
158
|
+
*/
|
|
159
|
+
function osVersion(): number | null | undefined;
|
|
154
160
|
/**
|
|
155
161
|
* Мобильный браузер или нет
|
|
156
162
|
*/
|