@observertc/observer-js 0.40.4-beta → 0.40.5-beta
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/lib/ObservedCall.d.ts +2 -0
- package/lib/ObservedCall.d.ts.map +1 -1
- package/lib/ObservedCall.js +6 -1
- package/lib/ObservedClient.d.ts +17 -2
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +51 -18
- package/lib/ObservedOutboundTrack.d.ts.map +1 -1
- package/lib/ObservedOutboundTrack.js +1 -0
- package/lib/ObservedPeerConnection.d.ts +3 -3
- package/lib/ObservedPeerConnection.d.ts.map +1 -1
- package/lib/ObservedPeerConnection.js +38 -41
- package/package.json +1 -1
- package/src/ObservedCall.ts +7 -1
- package/src/ObservedClient.ts +61 -20
- package/src/ObservedOutboundTrack.ts +1 -0
- package/src/ObservedPeerConnection.ts +40 -45
package/lib/ObservedCall.d.ts
CHANGED
|
@@ -24,10 +24,12 @@ export declare class ObservedCall<AppData extends Record<string, unknown> = Reco
|
|
|
24
24
|
private readonly _model;
|
|
25
25
|
readonly observer: Observer;
|
|
26
26
|
readonly appData: AppData;
|
|
27
|
+
readonly created: number;
|
|
27
28
|
private readonly _clients;
|
|
28
29
|
readonly sfuStreamIdToOutboundAudioTrack: Map<string | number, ObservedOutboundTrack<"audio">>;
|
|
29
30
|
readonly sfuStreamIdToOutboundVideoTrack: Map<string | number, ObservedOutboundTrack<"video">>;
|
|
30
31
|
private _closed;
|
|
32
|
+
private _updated;
|
|
31
33
|
private _ended?;
|
|
32
34
|
constructor(_model: ObservedCallModel, observer: Observer, appData: AppData);
|
|
33
35
|
get serviceId(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedCall.d.ts","sourceRoot":"","sources":["../src/ObservedCall.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC;CACV,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACpC,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3G,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC5F;AAED,qBAAa,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"ObservedCall.d.ts","sourceRoot":"","sources":["../src/ObservedCall.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC;CACV,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACpC,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3G,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC5F;AAED,qBAAa,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;IAY/G,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,QAAQ,EAAE,QAAQ;aAClB,OAAO,EAAE,OAAO;IAbjC,SAAgB,OAAO,SAAc;IAErC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAE9D,SAAgB,+BAA+B,uDAA8D;IAC7G,SAAgB,+BAA+B,uDAA8D;IAC7G,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAGN,MAAM,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAMjC,IAAW,SAAS,IAAI,MAAM,CAG7B;IAED,IAAW,OAAO,kDAEjB;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAExD;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM;IAUxB,YAAY,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,GAAG;QAAE,OAAO,EAAE,aAAa,CAAC;QAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAmC5M"}
|
package/lib/ObservedCall.js
CHANGED
|
@@ -21,10 +21,12 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
21
21
|
this._model = _model;
|
|
22
22
|
this.observer = observer;
|
|
23
23
|
this.appData = appData;
|
|
24
|
+
this.created = Date.now();
|
|
24
25
|
this._clients = new Map();
|
|
25
26
|
this.sfuStreamIdToOutboundAudioTrack = new Map();
|
|
26
27
|
this.sfuStreamIdToOutboundVideoTrack = new Map();
|
|
27
28
|
this._closed = false;
|
|
29
|
+
this._updated = Date.now();
|
|
28
30
|
this.setMaxListeners(Infinity);
|
|
29
31
|
}
|
|
30
32
|
get serviceId() {
|
|
@@ -67,7 +69,10 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
67
69
|
throw new Error(`Call ${this.callId} is closed`);
|
|
68
70
|
const { appData, generateClientJoinedReport, joined = Date.now() } = config, model = __rest(config, ["appData", "generateClientJoinedReport", "joined"]);
|
|
69
71
|
const result = new ObservedClient_1.ObservedClient(model, this, appData);
|
|
70
|
-
const onUpdate = () =>
|
|
72
|
+
const onUpdate = () => {
|
|
73
|
+
this._updated = Date.now();
|
|
74
|
+
this.emit('update');
|
|
75
|
+
};
|
|
71
76
|
result.once('close', () => {
|
|
72
77
|
result.off('update', onUpdate);
|
|
73
78
|
this._clients.delete(result.clientId);
|
package/lib/ObservedClient.d.ts
CHANGED
|
@@ -74,9 +74,24 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
74
74
|
totalDataChannelBytesReceived: number;
|
|
75
75
|
totalSentBytes: number;
|
|
76
76
|
totalReceivedBytes: number;
|
|
77
|
+
totalReceivedAudioBytes: number;
|
|
78
|
+
totalReceivedVideoBytes: number;
|
|
79
|
+
totalSentAudioBytes: number;
|
|
80
|
+
totalSentVideoBytes: number;
|
|
81
|
+
deltaReceivedAudioBytes: number;
|
|
82
|
+
deltaReceivedVideoBytes: number;
|
|
83
|
+
deltaSentAudioBytes: number;
|
|
84
|
+
deltaSentVideoBytes: number;
|
|
85
|
+
deltaDataChannelBytesSent: number;
|
|
86
|
+
deltaDataChannelBytesReceived: number;
|
|
87
|
+
deltaInboundPacketsLost: number;
|
|
88
|
+
deltaInboundPacketsReceived: number;
|
|
89
|
+
deltaOutboundPacketsSent: number;
|
|
77
90
|
avgRttInMs?: number;
|
|
78
|
-
|
|
79
|
-
|
|
91
|
+
outboundAudioBitrate?: number;
|
|
92
|
+
outboundVideoBitrate?: number;
|
|
93
|
+
inboundAudioBitrate?: number;
|
|
94
|
+
inboundVideoBitrate?: number;
|
|
80
95
|
readonly mediaDevices: string[];
|
|
81
96
|
readonly codecs: string[];
|
|
82
97
|
readonly userMediaErrors: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAChJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAOlE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,MAAM,mBAAmB,GAAE;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,EAAE,CAAC;IACX,KAAK,EAAE,EAAE,CAAC;IACV,iBAAiB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAC5C,wBAAwB,EAAE;QAAC;YAC1B,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,uBAAuB,EAAE;QAAC;YACzB,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,qBAAqB,EAAE;QAAC;YACvB,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,qBAAqB,EAAE;QAAC;YACvB,cAAc,EAAE,sBAAsB,CAAC;YACvC,cAAc,EAAE,iBAAiB,CAAC;YAClC,eAAe,EAAE,kBAAkB,CAAC;SACpC;KAAC,CAAC;IACH,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxG,EAAE,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/G,GAAG,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAChH,IAAI,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACjH,IAAI,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAChG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,cAAc,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedClient.js
CHANGED
|
@@ -42,6 +42,19 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
42
42
|
this.totalDataChannelBytesReceived = 0;
|
|
43
43
|
this.totalSentBytes = 0;
|
|
44
44
|
this.totalReceivedBytes = 0;
|
|
45
|
+
this.totalReceivedAudioBytes = 0;
|
|
46
|
+
this.totalReceivedVideoBytes = 0;
|
|
47
|
+
this.totalSentAudioBytes = 0;
|
|
48
|
+
this.totalSentVideoBytes = 0;
|
|
49
|
+
this.deltaReceivedAudioBytes = 0;
|
|
50
|
+
this.deltaReceivedVideoBytes = 0;
|
|
51
|
+
this.deltaSentAudioBytes = 0;
|
|
52
|
+
this.deltaSentVideoBytes = 0;
|
|
53
|
+
this.deltaDataChannelBytesSent = 0;
|
|
54
|
+
this.deltaDataChannelBytesReceived = 0;
|
|
55
|
+
this.deltaInboundPacketsLost = 0;
|
|
56
|
+
this.deltaInboundPacketsReceived = 0;
|
|
57
|
+
this.deltaOutboundPacketsSent = 0;
|
|
45
58
|
this.mediaDevices = [];
|
|
46
59
|
this.codecs = [];
|
|
47
60
|
this.userMediaErrors = [];
|
|
@@ -451,38 +464,58 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
451
464
|
}
|
|
452
465
|
// update metrics
|
|
453
466
|
const wasUsingTURN = this.usingTURN;
|
|
467
|
+
const elapsedTimeInMs = now - this._updated;
|
|
454
468
|
this.usingTURN = false;
|
|
455
469
|
this.availableIncomingBitrate = 0;
|
|
456
470
|
this.availableOutgoingBitrate = 0;
|
|
457
|
-
this.
|
|
458
|
-
this.
|
|
459
|
-
this.
|
|
460
|
-
this.
|
|
461
|
-
this.
|
|
462
|
-
this.
|
|
463
|
-
this.
|
|
464
|
-
this.
|
|
465
|
-
this.
|
|
471
|
+
this.deltaInboundPacketsLost = 0;
|
|
472
|
+
this.deltaInboundPacketsReceived = 0;
|
|
473
|
+
this.deltaOutboundPacketsSent = 0;
|
|
474
|
+
this.deltaReceivedAudioBytes = 0;
|
|
475
|
+
this.deltaReceivedVideoBytes = 0;
|
|
476
|
+
this.deltaSentAudioBytes = 0;
|
|
477
|
+
this.deltaSentVideoBytes = 0;
|
|
478
|
+
this.deltaDataChannelBytesReceived = 0;
|
|
479
|
+
this.deltaDataChannelBytesSent = 0;
|
|
480
|
+
this.outboundAudioBitrate = 0;
|
|
481
|
+
this.outboundVideoBitrate = 0;
|
|
482
|
+
this.inboundAudioBitrate = 0;
|
|
483
|
+
this.inboundVideoBitrate = 0;
|
|
466
484
|
let sumRttInMs = 0;
|
|
467
485
|
for (const peerConnection of this._peerConnections.values()) {
|
|
468
486
|
if (peerConnection.closed)
|
|
469
487
|
continue;
|
|
470
488
|
peerConnection.updateMetrics();
|
|
471
|
-
this.
|
|
472
|
-
this.
|
|
473
|
-
this.
|
|
474
|
-
this.
|
|
475
|
-
this.
|
|
476
|
-
this.
|
|
477
|
-
this.
|
|
478
|
-
this.
|
|
479
|
-
this.
|
|
489
|
+
this.deltaInboundPacketsLost += peerConnection.deltaInboundPacketsLost;
|
|
490
|
+
this.deltaInboundPacketsReceived += peerConnection.deltaInboundPacketsReceived;
|
|
491
|
+
this.deltaOutboundPacketsSent += peerConnection.deltaOutboundPacketsSent;
|
|
492
|
+
this.deltaReceivedAudioBytes += peerConnection.deltaReceivedAudioBytes;
|
|
493
|
+
this.deltaReceivedVideoBytes += peerConnection.deltaReceivedVideoBytes;
|
|
494
|
+
this.deltaSentAudioBytes += peerConnection.deltaSentAudioBytes;
|
|
495
|
+
this.deltaSentVideoBytes += peerConnection.deltaSentVideoBytes;
|
|
496
|
+
this.deltaDataChannelBytesReceived += peerConnection.deltaDataChannelBytesReceived;
|
|
497
|
+
this.deltaDataChannelBytesSent += peerConnection.deltaDataChannelBytesSent;
|
|
480
498
|
this.availableIncomingBitrate += (_18 = peerConnection.availableIncomingBitrate) !== null && _18 !== void 0 ? _18 : 0;
|
|
481
499
|
this.availableOutgoingBitrate += (_19 = peerConnection.availableOutgoingBitrate) !== null && _19 !== void 0 ? _19 : 0;
|
|
482
500
|
sumRttInMs += (_20 = peerConnection.avgRttInMs) !== null && _20 !== void 0 ? _20 : 0;
|
|
483
501
|
if (peerConnection.usingTURN)
|
|
484
502
|
this.usingTURN = true;
|
|
485
503
|
}
|
|
504
|
+
this.totalSentBytes += this.deltaSentAudioBytes + this.deltaSentVideoBytes;
|
|
505
|
+
this.totalReceivedBytes += this.deltaReceivedAudioBytes + this.deltaReceivedVideoBytes;
|
|
506
|
+
this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
|
|
507
|
+
this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
|
|
508
|
+
this.totalSentAudioBytes += this.deltaSentAudioBytes;
|
|
509
|
+
this.totalSentVideoBytes += this.deltaSentVideoBytes;
|
|
510
|
+
this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
|
|
511
|
+
this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
|
|
512
|
+
this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
|
|
513
|
+
this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
|
|
514
|
+
this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
|
|
515
|
+
this.outboundAudioBitrate = (this.deltaSentAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
516
|
+
this.outboundVideoBitrate = (this.deltaSentVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
517
|
+
this.inboundAudioBitrate = (this.deltaReceivedAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
518
|
+
this.inboundVideoBitrate = (this.deltaReceivedVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
486
519
|
this.avgRttInMs = this._peerConnections.size ? sumRttInMs / this._peerConnections.size : undefined;
|
|
487
520
|
if (wasUsingTURN !== this.usingTURN)
|
|
488
521
|
this.emit('usingturn', this.usingTURN);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedOutboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundTrack.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ObservedOutboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundTrack.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,6 +118,7 @@ class ObservedOutboundTrack extends events_1.EventEmitter {
|
|
|
118
118
|
this.totalLostPackets = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.packetsLost) !== null && _a !== void 0 ? _a : 0); }, 0);
|
|
119
119
|
this.totalSentPackets = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.packetsSent) !== null && _a !== void 0 ? _a : 0); }, 0);
|
|
120
120
|
this.totalSentBytes = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.bytesSent) !== null && _a !== void 0 ? _a : 0); }, 0);
|
|
121
|
+
this.totalSentFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.deltaSentPackets) !== null && _a !== void 0 ? _a : 0); }, 0);
|
|
121
122
|
this.deltaEncodedFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.deltaEncodedFrames) !== null && _a !== void 0 ? _a : 0); }, 0);
|
|
122
123
|
this.deltaSentFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.deltaSentFrames) !== null && _a !== void 0 ? _a : 0); }, 0);
|
|
123
124
|
this.deltaLostPackets = [...this._stats.values()].reduce((acc, stat) => acc + stat.deltaLostPackets, 0);
|
|
@@ -43,9 +43,9 @@ export declare class ObservedPeerConnection extends EventEmitter {
|
|
|
43
43
|
totalReceivedVideoPackets: number;
|
|
44
44
|
totalReceivedAudioBytes: number;
|
|
45
45
|
totalReceivedVideoBytes: number;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
deltaInboundPacketsLost: number;
|
|
47
|
+
deltaInboundPacketsReceived: number;
|
|
48
|
+
deltaOutboundPacketsSent: number;
|
|
49
49
|
deltaDataChannelBytesSent: number;
|
|
50
50
|
deltaDataChannelBytesReceived: number;
|
|
51
51
|
deltaInboundReceivedBytes: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedPeerConnection.d.ts","sourceRoot":"","sources":["../src/ObservedPeerConnection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ObservedPeerConnection.d.ts","sourceRoot":"","sources":["../src/ObservedPeerConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,9 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
25
25
|
this.totalReceivedVideoPackets = 0;
|
|
26
26
|
this.totalReceivedAudioBytes = 0;
|
|
27
27
|
this.totalReceivedVideoBytes = 0;
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
28
|
+
this.deltaInboundPacketsLost = 0;
|
|
29
|
+
this.deltaInboundPacketsReceived = 0;
|
|
30
|
+
this.deltaOutboundPacketsSent = 0;
|
|
31
31
|
this.deltaDataChannelBytesSent = 0;
|
|
32
32
|
this.deltaDataChannelBytesReceived = 0;
|
|
33
33
|
this.deltaInboundReceivedBytes = 0;
|
|
@@ -146,9 +146,9 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
146
146
|
return (_c = (_b = (_a = this._inboundAudioTracks.get(trackId)) !== null && _a !== void 0 ? _a : this._inboundVideoTracks.get(trackId)) !== null && _b !== void 0 ? _b : this._outboundAudioTracks.get(trackId)) !== null && _c !== void 0 ? _c : this._outboundVideoTracks.get(trackId);
|
|
147
147
|
}
|
|
148
148
|
resetMetrics() {
|
|
149
|
-
this.
|
|
150
|
-
this.
|
|
151
|
-
this.
|
|
149
|
+
this.deltaInboundPacketsLost = 0;
|
|
150
|
+
this.deltaInboundPacketsReceived = 0;
|
|
151
|
+
this.deltaOutboundPacketsSent = 0;
|
|
152
152
|
this.deltaDataChannelBytesSent = 0;
|
|
153
153
|
this.deltaDataChannelBytesReceived = 0;
|
|
154
154
|
this.deltaReceivedAudioBytes = 0;
|
|
@@ -161,78 +161,62 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
161
161
|
this._outboundVideoTracks.forEach((track) => track.resetMetrics());
|
|
162
162
|
}
|
|
163
163
|
updateMetrics() {
|
|
164
|
+
// this.totalInboundPacketsLost = 0;
|
|
165
|
+
// this.totalInboundPacketsReceived = 0;
|
|
166
|
+
// this.totalOutboundPacketsSent = 0;
|
|
167
|
+
// this.totalDataChannelBytesSent = 0;
|
|
168
|
+
// this.totalDataChannelBytesReceived = 0;
|
|
164
169
|
var _a;
|
|
165
|
-
this.
|
|
166
|
-
this.
|
|
167
|
-
this.
|
|
168
|
-
this.
|
|
169
|
-
this.
|
|
170
|
-
this.
|
|
171
|
-
this.
|
|
172
|
-
this.
|
|
173
|
-
this.totalReceivedVideoBytes = 0;
|
|
174
|
-
this.sendingAudioBitrate = 0;
|
|
175
|
-
this.sendingVideoBitrate = 0;
|
|
176
|
-
this.receivingAudioBitrate = 0;
|
|
177
|
-
this.receivingVideoBitrate = 0;
|
|
170
|
+
// this.totalSentAudioBytes = 0;
|
|
171
|
+
// this.totalSentVideoBytes = 0;
|
|
172
|
+
// this.totalReceivedAudioBytes = 0;
|
|
173
|
+
// this.totalReceivedVideoBytes = 0;
|
|
174
|
+
// this.sendingAudioBitrate = 0;
|
|
175
|
+
// this.sendingVideoBitrate = 0;
|
|
176
|
+
// this.receivingAudioBitrate = 0;
|
|
177
|
+
// this.receivingVideoBitrate = 0;
|
|
178
178
|
let sumRttInMs = 0;
|
|
179
179
|
this._inboundAudioTracks.forEach((track) => {
|
|
180
180
|
var _a;
|
|
181
|
-
this.
|
|
182
|
-
this.
|
|
181
|
+
this.deltaInboundPacketsLost += track.deltaLostPackets;
|
|
182
|
+
this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
|
|
183
183
|
this.deltaInboundReceivedBytes += track.deltaBytesReceived;
|
|
184
184
|
this.deltaReceivedAudioBytes += track.deltaBytesReceived;
|
|
185
185
|
this.deltaReceivedAudioPackets += track.deltaReceivedPackets;
|
|
186
186
|
this.receivingAudioBitrate += track.bitrate;
|
|
187
|
-
this.totalInboundPacketsLost += track.totalLostPackets;
|
|
188
|
-
this.totalInboundPacketsReceived += track.totalReceivedPackets;
|
|
189
|
-
this.totalReceivedAudioBytes += track.totalBytesReceived;
|
|
190
|
-
this.totalReceivedAudioPacktes += track.totalReceivedPackets;
|
|
191
187
|
sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
|
|
192
188
|
});
|
|
193
189
|
this._inboundVideoTracks.forEach((track) => {
|
|
194
190
|
var _a;
|
|
195
|
-
this.
|
|
196
|
-
this.
|
|
191
|
+
this.deltaInboundPacketsLost += track.deltaLostPackets;
|
|
192
|
+
this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
|
|
197
193
|
this.deltaInboundReceivedBytes += track.deltaBytesReceived;
|
|
198
194
|
this.deltaReceivedVideoBytes += track.deltaBytesReceived;
|
|
199
195
|
this.deltaReceivedVideoPackets += track.deltaReceivedPackets;
|
|
200
196
|
this.receivingVideoBitrate += track.bitrate;
|
|
201
|
-
this.totalInboundPacketsLost += track.totalLostPackets;
|
|
202
|
-
this.totalInboundPacketsReceived += track.totalReceivedPackets;
|
|
203
|
-
this.totalReceivedVideoBytes += track.totalBytesReceived;
|
|
204
|
-
this.totalReceivedVideoPackets += track.totalReceivedPackets;
|
|
205
197
|
sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
|
|
206
198
|
});
|
|
207
199
|
this._outboundAudioTracks.forEach((track) => {
|
|
208
200
|
var _a;
|
|
209
|
-
this.
|
|
201
|
+
this.deltaOutboundPacketsSent += track.deltaSentPackets;
|
|
210
202
|
this.deltaOutboundSentBytes += track.deltaSentBytes;
|
|
211
203
|
this.deltaSentAudioBytes += track.deltaSentBytes;
|
|
212
204
|
this.deltaSentAudioBytes += track.deltaSentPackets;
|
|
213
205
|
this.sendingAudioBitrate += track.bitrate;
|
|
214
|
-
this.totalOutboundPacketsSent += track.totalSentPackets;
|
|
215
|
-
this.totalSentAudioBytes += track.totalSentBytes;
|
|
216
|
-
this.totalSentAudioPackets += track.totalSentPackets;
|
|
217
206
|
sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
|
|
218
207
|
});
|
|
219
208
|
this._outboundVideoTracks.forEach((track) => {
|
|
220
209
|
var _a;
|
|
221
|
-
this.
|
|
210
|
+
this.deltaOutboundPacketsSent += track.deltaSentPackets;
|
|
222
211
|
this.deltaOutboundSentBytes += track.deltaSentBytes;
|
|
223
212
|
this.deltaSentVideoBytes += track.deltaSentBytes;
|
|
224
213
|
this.deltaSentVideoBytes += track.deltaSentPackets;
|
|
225
214
|
this.sendingVideoBitrate += track.bitrate;
|
|
226
|
-
this.totalOutboundPacketsSent += track.totalSentPackets;
|
|
227
|
-
this.totalSentVideoBytes += track.totalSentBytes;
|
|
228
|
-
this.totalSentVideoPackets += track.totalSentPackets;
|
|
229
215
|
sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
|
|
230
216
|
});
|
|
231
217
|
this._dataChannels.forEach((channel) => {
|
|
232
218
|
this.deltaDataChannelBytesSent += channel.deltaBytesSent;
|
|
233
219
|
this.deltaDataChannelBytesReceived += channel.deltaBytesReceived;
|
|
234
|
-
this.totalDataChannelBytesSent += channel.totalBytesSent;
|
|
235
|
-
this.totalDataChannelBytesReceived += channel.totalBytesReceived;
|
|
236
220
|
});
|
|
237
221
|
const iceRttInMs = (_a = this.ICE.stats) === null || _a === void 0 ? void 0 : _a.currentRoundTripTime;
|
|
238
222
|
let nrOfBelongings = this._inboundAudioTracks.size + this._inboundVideoTracks.size + this._outboundAudioTracks.size + this._outboundVideoTracks.size;
|
|
@@ -241,6 +225,19 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
241
225
|
nrOfBelongings += 1;
|
|
242
226
|
}
|
|
243
227
|
this.avgRttInMs = 0 < nrOfBelongings ? sumRttInMs / nrOfBelongings : undefined;
|
|
228
|
+
this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
|
|
229
|
+
this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
|
|
230
|
+
this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
|
|
231
|
+
this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
|
|
232
|
+
this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
|
|
233
|
+
this.totalSentAudioBytes += this.deltaSentAudioBytes;
|
|
234
|
+
this.totalSentVideoBytes += this.deltaSentVideoBytes;
|
|
235
|
+
this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
|
|
236
|
+
this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
|
|
237
|
+
this.totalReceivedAudioPacktes += this.deltaReceivedAudioPackets;
|
|
238
|
+
this.totalReceivedVideoPackets += this.deltaReceivedVideoPackets;
|
|
239
|
+
this.totalSentAudioPackets += this.deltaSentAudioBytes;
|
|
240
|
+
this.totalSentVideoPackets += this.deltaSentVideoBytes;
|
|
244
241
|
}
|
|
245
242
|
update(sample, timestamp) {
|
|
246
243
|
if (this._closed)
|
package/package.json
CHANGED
package/src/ObservedCall.ts
CHANGED
|
@@ -25,11 +25,14 @@ export declare interface ObservedCall {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export class ObservedCall<AppData extends Record<string, unknown> = Record<string, unknown>> extends EventEmitter {
|
|
28
|
+
public readonly created = Date.now();
|
|
29
|
+
|
|
28
30
|
private readonly _clients = new Map<string, ObservedClient>();
|
|
29
31
|
|
|
30
32
|
public readonly sfuStreamIdToOutboundAudioTrack = new Map<string | number, ObservedOutboundTrack<'audio'>>();
|
|
31
33
|
public readonly sfuStreamIdToOutboundVideoTrack = new Map<string | number, ObservedOutboundTrack<'video'>>();
|
|
32
34
|
private _closed = false;
|
|
35
|
+
private _updated = Date.now();
|
|
33
36
|
private _ended?: number;
|
|
34
37
|
|
|
35
38
|
public constructor(
|
|
@@ -92,7 +95,10 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
|
|
|
92
95
|
const { appData, generateClientJoinedReport, joined = Date.now(), ...model } = config;
|
|
93
96
|
|
|
94
97
|
const result = new ObservedClient(model, this, appData);
|
|
95
|
-
const onUpdate = () =>
|
|
98
|
+
const onUpdate = () => {
|
|
99
|
+
this._updated = Date.now();
|
|
100
|
+
this.emit('update');
|
|
101
|
+
};
|
|
96
102
|
|
|
97
103
|
result.once('close', () => {
|
|
98
104
|
result.off('update', onUpdate);
|
package/src/ObservedClient.ts
CHANGED
|
@@ -79,10 +79,26 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
79
79
|
public totalDataChannelBytesReceived = 0;
|
|
80
80
|
public totalSentBytes = 0;
|
|
81
81
|
public totalReceivedBytes = 0;
|
|
82
|
+
public totalReceivedAudioBytes = 0;
|
|
83
|
+
public totalReceivedVideoBytes = 0;
|
|
84
|
+
public totalSentAudioBytes = 0;
|
|
85
|
+
public totalSentVideoBytes = 0;
|
|
86
|
+
|
|
87
|
+
public deltaReceivedAudioBytes = 0;
|
|
88
|
+
public deltaReceivedVideoBytes = 0;
|
|
89
|
+
public deltaSentAudioBytes = 0;
|
|
90
|
+
public deltaSentVideoBytes = 0;
|
|
91
|
+
public deltaDataChannelBytesSent = 0;
|
|
92
|
+
public deltaDataChannelBytesReceived = 0;
|
|
93
|
+
public deltaInboundPacketsLost = 0;
|
|
94
|
+
public deltaInboundPacketsReceived = 0;
|
|
95
|
+
public deltaOutboundPacketsSent = 0;
|
|
82
96
|
|
|
83
97
|
public avgRttInMs?: number;
|
|
84
|
-
public
|
|
85
|
-
public
|
|
98
|
+
public outboundAudioBitrate?: number;
|
|
99
|
+
public outboundVideoBitrate?: number;
|
|
100
|
+
public inboundAudioBitrate?: number;
|
|
101
|
+
public inboundVideoBitrate?: number;
|
|
86
102
|
|
|
87
103
|
public readonly mediaDevices: string[] = [];
|
|
88
104
|
public readonly codecs: string[] = [];
|
|
@@ -677,40 +693,65 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
677
693
|
|
|
678
694
|
// update metrics
|
|
679
695
|
const wasUsingTURN = this.usingTURN;
|
|
696
|
+
const elapsedTimeInMs = now - this._updated;
|
|
680
697
|
|
|
681
698
|
this.usingTURN = false;
|
|
682
699
|
this.availableIncomingBitrate = 0;
|
|
683
700
|
this.availableOutgoingBitrate = 0;
|
|
684
|
-
this.
|
|
685
|
-
this.
|
|
686
|
-
this.
|
|
687
|
-
this.
|
|
688
|
-
this.
|
|
689
|
-
this.
|
|
690
|
-
this.
|
|
691
|
-
this.
|
|
692
|
-
this.
|
|
701
|
+
this.deltaInboundPacketsLost = 0;
|
|
702
|
+
this.deltaInboundPacketsReceived = 0;
|
|
703
|
+
this.deltaOutboundPacketsSent = 0;
|
|
704
|
+
this.deltaReceivedAudioBytes = 0;
|
|
705
|
+
this.deltaReceivedVideoBytes = 0;
|
|
706
|
+
this.deltaSentAudioBytes = 0;
|
|
707
|
+
this.deltaSentVideoBytes = 0;
|
|
708
|
+
this.deltaDataChannelBytesReceived = 0;
|
|
709
|
+
this.deltaDataChannelBytesSent = 0;
|
|
710
|
+
|
|
711
|
+
this.outboundAudioBitrate = 0;
|
|
712
|
+
this.outboundVideoBitrate = 0;
|
|
713
|
+
this.inboundAudioBitrate = 0;
|
|
714
|
+
this.inboundVideoBitrate = 0;
|
|
693
715
|
let sumRttInMs = 0;
|
|
694
716
|
|
|
695
717
|
for (const peerConnection of this._peerConnections.values()) {
|
|
696
718
|
if (peerConnection.closed) continue;
|
|
697
719
|
peerConnection.updateMetrics();
|
|
698
|
-
this.
|
|
699
|
-
this.
|
|
700
|
-
this.
|
|
701
|
-
this.
|
|
702
|
-
this.
|
|
703
|
-
this.
|
|
704
|
-
this.
|
|
705
|
-
this.
|
|
706
|
-
this.
|
|
720
|
+
this.deltaInboundPacketsLost += peerConnection.deltaInboundPacketsLost;
|
|
721
|
+
this.deltaInboundPacketsReceived += peerConnection.deltaInboundPacketsReceived;
|
|
722
|
+
this.deltaOutboundPacketsSent += peerConnection.deltaOutboundPacketsSent;
|
|
723
|
+
this.deltaReceivedAudioBytes += peerConnection.deltaReceivedAudioBytes;
|
|
724
|
+
this.deltaReceivedVideoBytes += peerConnection.deltaReceivedVideoBytes;
|
|
725
|
+
this.deltaSentAudioBytes += peerConnection.deltaSentAudioBytes;
|
|
726
|
+
this.deltaSentVideoBytes += peerConnection.deltaSentVideoBytes;
|
|
727
|
+
this.deltaDataChannelBytesReceived += peerConnection.deltaDataChannelBytesReceived;
|
|
728
|
+
this.deltaDataChannelBytesSent += peerConnection.deltaDataChannelBytesSent;
|
|
729
|
+
|
|
707
730
|
this.availableIncomingBitrate += peerConnection.availableIncomingBitrate ?? 0;
|
|
708
731
|
this.availableOutgoingBitrate += peerConnection.availableOutgoingBitrate ?? 0;
|
|
732
|
+
|
|
709
733
|
sumRttInMs += peerConnection.avgRttInMs ?? 0;
|
|
710
734
|
|
|
711
735
|
if (peerConnection.usingTURN) this.usingTURN = true;
|
|
712
736
|
}
|
|
713
737
|
|
|
738
|
+
this.totalSentBytes += this.deltaSentAudioBytes + this.deltaSentVideoBytes;
|
|
739
|
+
this.totalReceivedBytes += this.deltaReceivedAudioBytes + this.deltaReceivedVideoBytes;
|
|
740
|
+
this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
|
|
741
|
+
this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
|
|
742
|
+
this.totalSentAudioBytes += this.deltaSentAudioBytes;
|
|
743
|
+
this.totalSentVideoBytes += this.deltaSentVideoBytes;
|
|
744
|
+
this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
|
|
745
|
+
this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
|
|
746
|
+
this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
|
|
747
|
+
this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
|
|
748
|
+
this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
|
|
749
|
+
|
|
750
|
+
this.outboundAudioBitrate = (this.deltaSentAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
751
|
+
this.outboundVideoBitrate = (this.deltaSentVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
752
|
+
this.inboundAudioBitrate = (this.deltaReceivedAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
753
|
+
this.inboundVideoBitrate = (this.deltaReceivedVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
|
|
754
|
+
|
|
714
755
|
this.avgRttInMs = this._peerConnections.size ? sumRttInMs / this._peerConnections.size : undefined;
|
|
715
756
|
|
|
716
757
|
if (wasUsingTURN !== this.usingTURN) this.emit('usingturn', this.usingTURN);
|
|
@@ -207,6 +207,7 @@ export class ObservedOutboundTrack<Kind extends MediaKind> extends EventEmitter
|
|
|
207
207
|
this.totalLostPackets = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.packetsLost ?? 0), 0);
|
|
208
208
|
this.totalSentPackets = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.packetsSent ?? 0), 0);
|
|
209
209
|
this.totalSentBytes = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.bytesSent ?? 0), 0);
|
|
210
|
+
this.totalSentFrames = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.deltaSentPackets ?? 0), 0);
|
|
210
211
|
|
|
211
212
|
this.deltaEncodedFrames = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.deltaEncodedFrames ?? 0), 0);
|
|
212
213
|
this.deltaSentFrames = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.deltaSentFrames ?? 0), 0);
|
|
@@ -49,9 +49,9 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
49
49
|
public totalReceivedAudioBytes = 0;
|
|
50
50
|
public totalReceivedVideoBytes = 0;
|
|
51
51
|
|
|
52
|
-
public
|
|
53
|
-
public
|
|
54
|
-
public
|
|
52
|
+
public deltaInboundPacketsLost = 0;
|
|
53
|
+
public deltaInboundPacketsReceived = 0;
|
|
54
|
+
public deltaOutboundPacketsSent = 0;
|
|
55
55
|
public deltaDataChannelBytesSent = 0;
|
|
56
56
|
public deltaDataChannelBytesReceived = 0;
|
|
57
57
|
public deltaInboundReceivedBytes = 0;
|
|
@@ -206,9 +206,9 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
public resetMetrics() {
|
|
209
|
-
this.
|
|
210
|
-
this.
|
|
211
|
-
this.
|
|
209
|
+
this.deltaInboundPacketsLost = 0;
|
|
210
|
+
this.deltaInboundPacketsReceived = 0;
|
|
211
|
+
this.deltaOutboundPacketsSent = 0;
|
|
212
212
|
|
|
213
213
|
this.deltaDataChannelBytesSent = 0;
|
|
214
214
|
this.deltaDataChannelBytesReceived = 0;
|
|
@@ -224,26 +224,26 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
public updateMetrics() {
|
|
227
|
-
this.totalInboundPacketsLost = 0;
|
|
228
|
-
this.totalInboundPacketsReceived = 0;
|
|
229
|
-
this.totalOutboundPacketsSent = 0;
|
|
230
|
-
this.totalDataChannelBytesSent = 0;
|
|
231
|
-
this.totalDataChannelBytesReceived = 0;
|
|
227
|
+
// this.totalInboundPacketsLost = 0;
|
|
228
|
+
// this.totalInboundPacketsReceived = 0;
|
|
229
|
+
// this.totalOutboundPacketsSent = 0;
|
|
230
|
+
// this.totalDataChannelBytesSent = 0;
|
|
231
|
+
// this.totalDataChannelBytesReceived = 0;
|
|
232
232
|
|
|
233
|
-
this.totalSentAudioBytes = 0;
|
|
234
|
-
this.totalSentVideoBytes = 0;
|
|
235
|
-
this.totalReceivedAudioBytes = 0;
|
|
236
|
-
this.totalReceivedVideoBytes = 0;
|
|
237
|
-
this.sendingAudioBitrate = 0;
|
|
238
|
-
this.sendingVideoBitrate = 0;
|
|
239
|
-
this.receivingAudioBitrate = 0;
|
|
240
|
-
this.receivingVideoBitrate = 0;
|
|
233
|
+
// this.totalSentAudioBytes = 0;
|
|
234
|
+
// this.totalSentVideoBytes = 0;
|
|
235
|
+
// this.totalReceivedAudioBytes = 0;
|
|
236
|
+
// this.totalReceivedVideoBytes = 0;
|
|
237
|
+
// this.sendingAudioBitrate = 0;
|
|
238
|
+
// this.sendingVideoBitrate = 0;
|
|
239
|
+
// this.receivingAudioBitrate = 0;
|
|
240
|
+
// this.receivingVideoBitrate = 0;
|
|
241
241
|
|
|
242
242
|
let sumRttInMs = 0;
|
|
243
243
|
|
|
244
244
|
this._inboundAudioTracks.forEach((track) => {
|
|
245
|
-
this.
|
|
246
|
-
this.
|
|
245
|
+
this.deltaInboundPacketsLost += track.deltaLostPackets;
|
|
246
|
+
this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
|
|
247
247
|
this.deltaInboundReceivedBytes += track.deltaBytesReceived;
|
|
248
248
|
|
|
249
249
|
this.deltaReceivedAudioBytes += track.deltaBytesReceived;
|
|
@@ -251,17 +251,12 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
251
251
|
|
|
252
252
|
this.receivingAudioBitrate += track.bitrate;
|
|
253
253
|
|
|
254
|
-
this.totalInboundPacketsLost += track.totalLostPackets;
|
|
255
|
-
this.totalInboundPacketsReceived += track.totalReceivedPackets;
|
|
256
|
-
this.totalReceivedAudioBytes += track.totalBytesReceived;
|
|
257
|
-
this.totalReceivedAudioPacktes += track.totalReceivedPackets;
|
|
258
|
-
|
|
259
254
|
sumRttInMs = (track.rttInMs ?? 0);
|
|
260
255
|
});
|
|
261
256
|
|
|
262
257
|
this._inboundVideoTracks.forEach((track) => {
|
|
263
|
-
this.
|
|
264
|
-
this.
|
|
258
|
+
this.deltaInboundPacketsLost += track.deltaLostPackets;
|
|
259
|
+
this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
|
|
265
260
|
this.deltaInboundReceivedBytes += track.deltaBytesReceived;
|
|
266
261
|
|
|
267
262
|
this.deltaReceivedVideoBytes += track.deltaBytesReceived;
|
|
@@ -269,16 +264,11 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
269
264
|
|
|
270
265
|
this.receivingVideoBitrate += track.bitrate;
|
|
271
266
|
|
|
272
|
-
this.totalInboundPacketsLost += track.totalLostPackets;
|
|
273
|
-
this.totalInboundPacketsReceived += track.totalReceivedPackets;
|
|
274
|
-
this.totalReceivedVideoBytes += track.totalBytesReceived;
|
|
275
|
-
this.totalReceivedVideoPackets += track.totalReceivedPackets;
|
|
276
|
-
|
|
277
267
|
sumRttInMs = (track.rttInMs ?? 0);
|
|
278
268
|
});
|
|
279
269
|
|
|
280
270
|
this._outboundAudioTracks.forEach((track) => {
|
|
281
|
-
this.
|
|
271
|
+
this.deltaOutboundPacketsSent += track.deltaSentPackets;
|
|
282
272
|
this.deltaOutboundSentBytes += track.deltaSentBytes;
|
|
283
273
|
|
|
284
274
|
this.deltaSentAudioBytes += track.deltaSentBytes;
|
|
@@ -286,15 +276,11 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
286
276
|
|
|
287
277
|
this.sendingAudioBitrate += track.bitrate;
|
|
288
278
|
|
|
289
|
-
this.totalOutboundPacketsSent += track.totalSentPackets;
|
|
290
|
-
this.totalSentAudioBytes += track.totalSentBytes;
|
|
291
|
-
this.totalSentAudioPackets += track.totalSentPackets;
|
|
292
|
-
|
|
293
279
|
sumRttInMs = (track.rttInMs ?? 0);
|
|
294
280
|
});
|
|
295
281
|
|
|
296
282
|
this._outboundVideoTracks.forEach((track) => {
|
|
297
|
-
this.
|
|
283
|
+
this.deltaOutboundPacketsSent += track.deltaSentPackets;
|
|
298
284
|
this.deltaOutboundSentBytes += track.deltaSentBytes;
|
|
299
285
|
|
|
300
286
|
this.deltaSentVideoBytes += track.deltaSentBytes;
|
|
@@ -302,18 +288,12 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
302
288
|
|
|
303
289
|
this.sendingVideoBitrate += track.bitrate;
|
|
304
290
|
|
|
305
|
-
this.totalOutboundPacketsSent += track.totalSentPackets;
|
|
306
|
-
this.totalSentVideoBytes += track.totalSentBytes;
|
|
307
|
-
this.totalSentVideoPackets += track.totalSentPackets;
|
|
308
|
-
|
|
309
291
|
sumRttInMs = (track.rttInMs ?? 0);
|
|
310
292
|
});
|
|
311
293
|
|
|
312
294
|
this._dataChannels.forEach((channel) => {
|
|
313
295
|
this.deltaDataChannelBytesSent += channel.deltaBytesSent;
|
|
314
296
|
this.deltaDataChannelBytesReceived += channel.deltaBytesReceived;
|
|
315
|
-
this.totalDataChannelBytesSent += channel.totalBytesSent;
|
|
316
|
-
this.totalDataChannelBytesReceived += channel.totalBytesReceived;
|
|
317
297
|
});
|
|
318
298
|
|
|
319
299
|
const iceRttInMs = this.ICE.stats?.currentRoundTripTime;
|
|
@@ -323,7 +303,22 @@ export class ObservedPeerConnection extends EventEmitter {
|
|
|
323
303
|
sumRttInMs += iceRttInMs;
|
|
324
304
|
nrOfBelongings += 1;
|
|
325
305
|
}
|
|
306
|
+
|
|
326
307
|
this.avgRttInMs = 0 < nrOfBelongings ? sumRttInMs / nrOfBelongings : undefined;
|
|
308
|
+
this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
|
|
309
|
+
this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
|
|
310
|
+
this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
|
|
311
|
+
this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
|
|
312
|
+
this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
|
|
313
|
+
this.totalSentAudioBytes += this.deltaSentAudioBytes;
|
|
314
|
+
this.totalSentVideoBytes += this.deltaSentVideoBytes;
|
|
315
|
+
this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
|
|
316
|
+
this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
|
|
317
|
+
this.totalReceivedAudioPacktes += this.deltaReceivedAudioPackets;
|
|
318
|
+
this.totalReceivedVideoPackets += this.deltaReceivedVideoPackets;
|
|
319
|
+
this.totalSentAudioPackets += this.deltaSentAudioBytes;
|
|
320
|
+
this.totalSentVideoPackets += this.deltaSentVideoBytes;
|
|
321
|
+
|
|
327
322
|
}
|
|
328
323
|
|
|
329
324
|
public update(sample: PeerConnectionTransport, timestamp: number) {
|