@livedigital/client 3.34.0-createCustomMediaTracks.1 → 3.34.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/dist/constants/events.d.ts +0 -1
- package/dist/constants/events.ts +0 -1
- package/dist/engine/Peer.d.ts +1 -2
- package/dist/engine/PeerConsumer.d.ts +0 -1
- package/dist/engine/PeerProducer.d.ts +0 -1
- package/dist/engine/WIDHandler.d.ts +21 -0
- package/dist/engine/WebRTCStats/TransportsStatsProvider.d.ts +5 -1
- package/dist/engine/analyticsApiClient/MetricsApi.d.ts +8 -0
- package/dist/engine/analyticsApiClient/index.d.ts +3 -0
- package/dist/engine/analyticsApiClient/types.d.ts +10 -3
- package/dist/engine/handlers/MediaSoupEventHandler.d.ts +0 -1
- package/dist/engine/index.d.ts +4 -7
- package/dist/engine/media/index.d.ts +0 -1
- package/dist/engine/media/tracks/PeerTrack.d.ts +0 -1
- package/dist/engine/network/DataChannelsManager.d.ts +0 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.es.js +3 -3
- package/dist/index.js +3 -3
- package/dist/inversify.tokens.d.ts +4 -1
- package/dist/types/common.d.ts +5 -10
- package/dist/types/engine.d.ts +2 -6
- package/dist/types/network.d.ts +2 -1
- package/package.json +1 -1
- package/src/constants/events.ts +0 -1
- package/src/engine/Peer.ts +1 -10
- package/src/engine/PeerConsumer.ts +0 -3
- package/src/engine/PeerProducer.ts +0 -2
- package/src/engine/WIDHandler.ts +142 -0
- package/src/engine/WebRTCStats/TransportsStatsProvider.ts +51 -7
- package/src/engine/analyticsApiClient/MetricsApi.ts +30 -0
- package/src/engine/analyticsApiClient/index.ts +10 -0
- package/src/engine/analyticsApiClient/types.ts +12 -4
- package/src/engine/handlers/MediaSoupEventHandler.ts +0 -22
- package/src/engine/index.ts +12 -94
- package/src/engine/media/index.ts +0 -5
- package/src/engine/media/tracks/PeerTrack.ts +0 -4
- package/src/engine/network/DataChannelsManager.ts +0 -38
- package/src/index.ts +1 -14
- package/src/inversify.config.ts +42 -4
- package/src/inversify.tokens.ts +3 -0
- package/src/types/common.ts +6 -12
- package/src/types/engine.ts +2 -7
- package/src/types/network.ts +2 -1
|
@@ -81,7 +81,6 @@ export declare const MEDIASOUP_EVENTS: {
|
|
|
81
81
|
readonly closeConsumer: "consumer.close";
|
|
82
82
|
readonly pauseConsumer: "consumer.pause";
|
|
83
83
|
readonly resumeConsumer: "consumer.resume";
|
|
84
|
-
readonly consumerScore: "consumer.score";
|
|
85
84
|
readonly consumerChangePreferredLayers: "consumer.changeConsumerPreferredLayers";
|
|
86
85
|
readonly consumerRequestKeyFrame: "consumer.requestKeyFrame";
|
|
87
86
|
readonly transportCreate: "transport.create";
|
package/dist/constants/events.ts
CHANGED
|
@@ -86,7 +86,6 @@ export const MEDIASOUP_EVENTS = {
|
|
|
86
86
|
closeConsumer: 'consumer.close',
|
|
87
87
|
pauseConsumer: 'consumer.pause',
|
|
88
88
|
resumeConsumer: 'consumer.resume',
|
|
89
|
-
consumerScore: 'consumer.score',
|
|
90
89
|
consumerChangePreferredLayers: 'consumer.changeConsumerPreferredLayers',
|
|
91
90
|
consumerRequestKeyFrame: 'consumer.requestKeyFrame',
|
|
92
91
|
transportCreate: 'transport.create',
|
package/dist/engine/Peer.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CHANNEL_EVENTS, MEDIASOUP_EVENTS, PEER_EVENTS } from '../constants/events';
|
|
2
2
|
import EnhancedEventEmitter from '../EnhancedEventEmitter';
|
|
3
|
-
import { ChangePreferredLayersPayload,
|
|
3
|
+
import { ChangePreferredLayersPayload, PayloadOfPublishedMedia, PayloadOfUnpublishedMedia, PeerGroup, PeerInfo, PeerShortData, ProducerData, ProducerSetMaxSpatialLayer, Role, SubscribeOptions, TrackLabel, TrackLabelString } from '../types/common';
|
|
4
4
|
import { PeerConsumerFactory } from '../types/container';
|
|
5
5
|
import { GroupsChangedPayload, ProducePermissionsChangedPayload } from '../types/engine';
|
|
6
6
|
import { CallState } from './CallState';
|
|
@@ -61,7 +61,6 @@ export declare type PeerObserverEvents = {
|
|
|
61
61
|
[MEDIASOUP_EVENTS.closeConsumer]: [consumerId: string];
|
|
62
62
|
[MEDIASOUP_EVENTS.pauseConsumer]: [consumerId: string];
|
|
63
63
|
[MEDIASOUP_EVENTS.resumeConsumer]: [consumerId: string];
|
|
64
|
-
[MEDIASOUP_EVENTS.consumerScore]: [ConsumerScorePayload];
|
|
65
64
|
[MEDIASOUP_EVENTS.consumerChangePreferredLayers]: [ChangePreferredLayersPayload];
|
|
66
65
|
[MEDIASOUP_EVENTS.producerSetMaxSpatialLayer]: [ProducerSetMaxSpatialLayer];
|
|
67
66
|
[CHANNEL_EVENTS.updatePeerAppData]: [Record<string, unknown>];
|
|
@@ -10,7 +10,6 @@ declare class PeerProducer {
|
|
|
10
10
|
readonly encodings: RtpEncodingParameters[];
|
|
11
11
|
readonly trackTransformParams: TrackTransformParams;
|
|
12
12
|
readonly maxSpatialLayer: number;
|
|
13
|
-
score: number;
|
|
14
13
|
constructor(params: ProducerData);
|
|
15
14
|
}
|
|
16
15
|
export default PeerProducer;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IssueDetectorResult, NetworkScores } from 'webrtc-issue-detector';
|
|
2
|
+
import AnalyticsApiClient from './analyticsApiClient';
|
|
3
|
+
import type { IPeersService } from './Peers';
|
|
4
|
+
import SocketIO from './network/Socket';
|
|
5
|
+
import { MyPeer } from './MyPeer';
|
|
6
|
+
import type { LoggerFactory } from '../types/container';
|
|
7
|
+
import TransportsStatsProvider from './WebRTCStats/TransportsStatsProvider';
|
|
8
|
+
declare class WIDHandler {
|
|
9
|
+
#private;
|
|
10
|
+
private readonly analyticsApiClient;
|
|
11
|
+
private readonly peers;
|
|
12
|
+
private readonly socket;
|
|
13
|
+
private readonly myPeer;
|
|
14
|
+
private readonly transportsStatsProvider;
|
|
15
|
+
constructor(analyticsApiClient: AnalyticsApiClient, peers: IPeersService, socket: SocketIO, myPeer: MyPeer, loggerFactory: LoggerFactory, transportsStatsProvider: TransportsStatsProvider);
|
|
16
|
+
handleIssues(issues: IssueDetectorResult): void;
|
|
17
|
+
handleNetworkScores(networkScores: NetworkScores): void;
|
|
18
|
+
private getNodeActiveStreamsStat;
|
|
19
|
+
private getClientMeta;
|
|
20
|
+
}
|
|
21
|
+
export default WIDHandler;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { TransportsStatsProviderParams, TransportsWebRTCStats } from './types';
|
|
2
|
+
import type { LoggerFactory } from '../../types/container';
|
|
2
3
|
export default class TransportsStatsProvider {
|
|
3
4
|
#private;
|
|
4
|
-
constructor(
|
|
5
|
+
constructor(loggerFactory: LoggerFactory);
|
|
6
|
+
init({ sendTransportConnectionManager, receiveTransportConnectionManager, media, peers, }: TransportsStatsProviderParams): void;
|
|
5
7
|
getStats(): TransportsWebRTCStats;
|
|
8
|
+
clear(): void;
|
|
9
|
+
private doGetStats;
|
|
6
10
|
private calculateInboundTracksBitrate;
|
|
7
11
|
private calculateOutboundTracksBitrate;
|
|
8
12
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { NetworkMetricsBatch, WIDMetricsBatch } from './types';
|
|
3
|
+
export default class MetricsApi {
|
|
4
|
+
private readonly api;
|
|
5
|
+
constructor(api: AxiosInstance);
|
|
6
|
+
sendNetworkMetrics(metrics: NetworkMetricsBatch): Promise<void>;
|
|
7
|
+
sendWIDMetrics(metrics: WIDMetricsBatch): Promise<void>;
|
|
8
|
+
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import LogApi from './LogApi';
|
|
2
|
+
import MetricsApi from './MetricsApi';
|
|
2
3
|
export default class AnalyticsApiClient {
|
|
3
4
|
private readonly api;
|
|
4
5
|
private readonly logApi;
|
|
6
|
+
private readonly metricsApi;
|
|
5
7
|
constructor();
|
|
6
8
|
get log(): LogApi;
|
|
9
|
+
get metrics(): MetricsApi;
|
|
7
10
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ClientMetaPayload } from '../../ClientMetaProvider';
|
|
1
2
|
import { LogToRemotePayload } from '../Logger';
|
|
2
3
|
export interface BatchLogPayload {
|
|
3
4
|
logs: LogToRemotePayload[];
|
|
@@ -12,11 +13,17 @@ export interface NetworkMetric {
|
|
|
12
13
|
node: string;
|
|
13
14
|
direction: 'inbound' | 'outbound';
|
|
14
15
|
timestamp: string;
|
|
16
|
+
bitrate: number;
|
|
15
17
|
}
|
|
16
|
-
export interface
|
|
18
|
+
export interface NetworkMetricsBatch {
|
|
17
19
|
metrics: NetworkMetric[];
|
|
18
|
-
clientMeta: {
|
|
19
|
-
|
|
20
|
+
clientMeta: ClientMetaPayload & {
|
|
21
|
+
clientUniqueId: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface WIDMetricsBatch {
|
|
25
|
+
reasons: string[];
|
|
26
|
+
clientMeta: ClientMetaPayload & {
|
|
20
27
|
clientUniqueId: string;
|
|
21
28
|
};
|
|
22
29
|
}
|
|
@@ -18,7 +18,6 @@ declare class MediaSoupEventHandler {
|
|
|
18
18
|
private readonly clientEventEmitter;
|
|
19
19
|
constructor(eventsQueue: EventsQueue, media: Media, network: Network, socket: SocketIO, myPeer: MyPeer, internalEventEmitter: EnhancedEventEmitter, peers: Peers, clientEventEmitter: EnhancedEventEmitter, loggerFactory: (namespace: string) => Logger);
|
|
20
20
|
subscribeToEvents(): void;
|
|
21
|
-
handleConsumerScoreEvent(payload: string): void;
|
|
22
21
|
private removeEventListeners;
|
|
23
22
|
reset(): void;
|
|
24
23
|
private handleProducerSetMaxSpatialLayer;
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { MediaKind } from 'mediasoup-client/lib/RtpParameters';
|
|
2
1
|
import WebRTCIssueDetector from 'webrtc-issue-detector';
|
|
3
2
|
import ConfigService from '../config/ConfigService';
|
|
4
3
|
import EnhancedEventEmitter from '../EnhancedEventEmitter';
|
|
5
|
-
import { CreateCameraVideoTrackOptions,
|
|
4
|
+
import { CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, PeerResponse, Role } from '../types/common';
|
|
6
5
|
import type { PeerTrackFactory } from '../types/container';
|
|
7
|
-
import { NodeActiveStreamsStat } from '../types/engine';
|
|
8
6
|
import { AudioTrack, BaseTrack, Track } from '../types/media';
|
|
9
7
|
import { CallState } from './CallState';
|
|
10
8
|
import ChannelStateSynchronizer from './ChannelStateSynchronizer/ChannelStateSynchronizer';
|
|
@@ -23,6 +21,7 @@ import SocketIO from './network/Socket';
|
|
|
23
21
|
import Peer from './Peer';
|
|
24
22
|
import type { IPeersService } from './Peers';
|
|
25
23
|
import System from './system';
|
|
24
|
+
import TransportsStatsProvider from './WebRTCStats/TransportsStatsProvider';
|
|
26
25
|
import StatsHandler from './WebRTCStats/StatsHandler';
|
|
27
26
|
import { TransportsWebRTCStats } from './WebRTCStats/types';
|
|
28
27
|
import DataChannelsManager from './network/DataChannelsManager';
|
|
@@ -48,10 +47,11 @@ declare class Engine {
|
|
|
48
47
|
private readonly internalEventEmitter;
|
|
49
48
|
private readonly statsHandler;
|
|
50
49
|
private readonly dataChannelsManager;
|
|
50
|
+
private readonly transportsStatsProvider;
|
|
51
51
|
private readonly webRtcIssueDetector?;
|
|
52
52
|
private rejoinRequested;
|
|
53
53
|
private isReleasing;
|
|
54
|
-
constructor(config: ConfigService, state: CallState, myPeer: MyPeer, loggerFactory: (namespace: string) => Logger, integrationsService: IntegrationsService, processorsCache: ProcessorsCache, mediaSoupEventsHandler: MediaSoupEventHandler, channelEventsHandler: ChannelEventHandler, channelStateSynchronizer: ChannelStateSynchronizer, peerTrackFactory: PeerTrackFactory, peers: IPeersService, system: System, media: Media, network: Network, loadBalancerClient: LoadBalancerApiClient, socket: SocketIO, eventsQueue: EventsQueue, clientEventEmitter: EnhancedEventEmitter, internalEventEmitter: EnhancedEventEmitter, statsHandler: StatsHandler, dataChannelsManager: DataChannelsManager, webRtcIssueDetector?: WebRTCIssueDetector | undefined);
|
|
54
|
+
constructor(config: ConfigService, state: CallState, myPeer: MyPeer, loggerFactory: (namespace: string) => Logger, integrationsService: IntegrationsService, processorsCache: ProcessorsCache, mediaSoupEventsHandler: MediaSoupEventHandler, channelEventsHandler: ChannelEventHandler, channelStateSynchronizer: ChannelStateSynchronizer, peerTrackFactory: PeerTrackFactory, peers: IPeersService, system: System, media: Media, network: Network, loadBalancerClient: LoadBalancerApiClient, socket: SocketIO, eventsQueue: EventsQueue, clientEventEmitter: EnhancedEventEmitter, internalEventEmitter: EnhancedEventEmitter, statsHandler: StatsHandler, dataChannelsManager: DataChannelsManager, transportsStatsProvider: TransportsStatsProvider, webRtcIssueDetector?: WebRTCIssueDetector | undefined);
|
|
55
55
|
get isChannelJoined(): boolean;
|
|
56
56
|
private initialize;
|
|
57
57
|
release(keepTracks?: boolean): Promise<void>;
|
|
@@ -67,9 +67,7 @@ declare class Engine {
|
|
|
67
67
|
createCameraVideoTrack(options?: CreateCameraVideoTrackOptions): Promise<VideoTrack>;
|
|
68
68
|
createMicrophoneAudioTrack(options?: CreateMicrophoneAudioTrackOptions): Promise<AudioTrack>;
|
|
69
69
|
createScreenMediaTracks(options?: CreateScreenMediaOptions): Promise<Track[]>;
|
|
70
|
-
createCustomMediaTracks(options?: CreateCustomMediaOptions): Promise<Track[]>;
|
|
71
70
|
deleteTrack(tracks: BaseTrack): Promise<void>;
|
|
72
|
-
getNodeActiveStreamsStat(): NodeActiveStreamsStat;
|
|
73
71
|
transportsStats(): TransportsWebRTCStats | undefined;
|
|
74
72
|
private connectToSocketServerWithRetry;
|
|
75
73
|
private connectToSocketServer;
|
|
@@ -82,7 +80,6 @@ declare class Engine {
|
|
|
82
80
|
private createSelfPeerTrack;
|
|
83
81
|
private triggerRejoinEventIfAppropriate;
|
|
84
82
|
private watchNetworkState;
|
|
85
|
-
getAvgTracksScore(kind: MediaKind): number | undefined;
|
|
86
83
|
private watchDocumentUnload;
|
|
87
84
|
private waitForReconnectOrTriggerRejoinEventIfAppropriate;
|
|
88
85
|
}
|
|
@@ -38,7 +38,6 @@ declare class Media {
|
|
|
38
38
|
private createTracks;
|
|
39
39
|
createUserMediaTracks(constraints: MediaStreamConstraints): Promise<BaseTrack[]>;
|
|
40
40
|
createDisplayMediaTracks(constraints: MediaStreamConstraints): Promise<BaseTrack[]>;
|
|
41
|
-
createCustomMediaTracks(mediaStream: MediaStream, constraints: MediaStreamConstraints): Promise<BaseTrack[]>;
|
|
42
41
|
deleteTrack(track: BaseTrack): Promise<void>;
|
|
43
42
|
getAllTracks(): BaseTrack[];
|
|
44
43
|
publishedTracks(): BaseTrack[];
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import 'reflect-metadata';
|
|
|
2
2
|
import Peer from './engine/Peer';
|
|
3
3
|
import EnhancedEventEmitter from './EnhancedEventEmitter';
|
|
4
4
|
import { ClientParams } from './types/client';
|
|
5
|
-
import { AvailableMediaDevices, CreateCameraVideoTrackOptions,
|
|
6
|
-
import { ClientObserverEvents
|
|
5
|
+
import { AvailableMediaDevices, CreateCameraVideoTrackOptions, CreateMicrophoneAudioTrackOptions, CreateScreenMediaOptions, JoinChannelParams, Role, TransportsStateInfo } from './types/common';
|
|
6
|
+
import { ClientObserverEvents } from './types/engine';
|
|
7
7
|
import { AudioTrack, Track, VideoTrack } from './types/media';
|
|
8
8
|
import { TransportsWebRTCStats } from './engine/WebRTCStats/types';
|
|
9
9
|
declare class Client {
|
|
@@ -25,15 +25,12 @@ declare class Client {
|
|
|
25
25
|
createCameraVideoTrack(options?: CreateCameraVideoTrackOptions): Promise<VideoTrack>;
|
|
26
26
|
createMicrophoneAudioTrack(options?: CreateMicrophoneAudioTrackOptions): Promise<AudioTrack>;
|
|
27
27
|
createScreenMediaTracks(options?: CreateScreenMediaOptions): Promise<Track[]>;
|
|
28
|
-
createCustomMediaTracks(options?: CreateCustomMediaOptions): Promise<Track[]>;
|
|
29
28
|
deleteTrack(track: Track): Promise<void>;
|
|
30
29
|
loadPeers(role?: Role): Promise<void>;
|
|
31
30
|
updateAppData(appData: Record<string, unknown>): Promise<void>;
|
|
32
31
|
getTransportsInfo(): Promise<TransportsStateInfo>;
|
|
33
|
-
getNodeActiveStreamsStat(): NodeActiveStreamsStat;
|
|
34
32
|
setPreferRelay(value: boolean): void;
|
|
35
33
|
getPreferRelay(): boolean;
|
|
36
34
|
transportsStats(): TransportsWebRTCStats | undefined;
|
|
37
|
-
getAvgTracksScore(kind: 'audio' | 'video'): number | undefined;
|
|
38
35
|
}
|
|
39
36
|
export default Client;
|