@observertc/observer-js 1.0.1-f31d7a4.0 → 1.2.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.
Files changed (174) hide show
  1. package/README.md +2195 -1
  2. package/dist/index.d.mts +7094 -0
  3. package/dist/index.d.ts +7094 -0
  4. package/dist/index.js +8166 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +8031 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +44 -19
  9. package/.eslintrc.json +0 -143
  10. package/.prettierignore +0 -5
  11. package/.prettierrc +0 -7
  12. package/jest.config.js +0 -9
  13. package/lib/ObservedCall.d.ts +0 -62
  14. package/lib/ObservedCall.d.ts.map +0 -1
  15. package/lib/ObservedCall.js +0 -127
  16. package/lib/ObservedCertificate.d.ts +0 -19
  17. package/lib/ObservedCertificate.d.ts.map +0 -1
  18. package/lib/ObservedCertificate.js +0 -38
  19. package/lib/ObservedClient.d.ts +0 -104
  20. package/lib/ObservedClient.d.ts.map +0 -1
  21. package/lib/ObservedClient.js +0 -250
  22. package/lib/ObservedCodec.d.ts +0 -22
  23. package/lib/ObservedCodec.d.ts.map +0 -1
  24. package/lib/ObservedCodec.js +0 -45
  25. package/lib/ObservedDataChannel.d.ts +0 -28
  26. package/lib/ObservedDataChannel.d.ts.map +0 -1
  27. package/lib/ObservedDataChannel.js +0 -73
  28. package/lib/ObservedIceCandidate.d.ts +0 -29
  29. package/lib/ObservedIceCandidate.d.ts.map +0 -1
  30. package/lib/ObservedIceCandidate.js +0 -59
  31. package/lib/ObservedIceCandidatePair.d.ts +0 -44
  32. package/lib/ObservedIceCandidatePair.d.ts.map +0 -1
  33. package/lib/ObservedIceCandidatePair.js +0 -111
  34. package/lib/ObservedIceTransport.d.ts +0 -32
  35. package/lib/ObservedIceTransport.d.ts.map +0 -1
  36. package/lib/ObservedIceTransport.js +0 -65
  37. package/lib/ObservedInboundRtp.d.ts +0 -92
  38. package/lib/ObservedInboundRtp.d.ts.map +0 -1
  39. package/lib/ObservedInboundRtp.js +0 -193
  40. package/lib/ObservedInboundTrack.d.ts +0 -29
  41. package/lib/ObservedInboundTrack.d.ts.map +0 -1
  42. package/lib/ObservedInboundTrack.js +0 -57
  43. package/lib/ObservedMediaPlayout.d.ts +0 -22
  44. package/lib/ObservedMediaPlayout.d.ts.map +0 -1
  45. package/lib/ObservedMediaPlayout.js +0 -42
  46. package/lib/ObservedMediaSource.d.ts +0 -28
  47. package/lib/ObservedMediaSource.d.ts.map +0 -1
  48. package/lib/ObservedMediaSource.js +0 -55
  49. package/lib/ObservedOutboundRtp.d.ts +0 -62
  50. package/lib/ObservedOutboundRtp.d.ts.map +0 -1
  51. package/lib/ObservedOutboundRtp.js +0 -144
  52. package/lib/ObservedOutboundTrack.d.ts +0 -29
  53. package/lib/ObservedOutboundTrack.d.ts.map +0 -1
  54. package/lib/ObservedOutboundTrack.js +0 -57
  55. package/lib/ObservedPeerConnection.d.ts +0 -183
  56. package/lib/ObservedPeerConnection.d.ts.map +0 -1
  57. package/lib/ObservedPeerConnection.js +0 -688
  58. package/lib/ObservedPeerConnectionTransport.d.ts +0 -17
  59. package/lib/ObservedPeerConnectionTransport.d.ts.map +0 -1
  60. package/lib/ObservedPeerConnectionTransport.js +0 -34
  61. package/lib/ObservedRemoteInboundRtp.d.ts +0 -30
  62. package/lib/ObservedRemoteInboundRtp.d.ts.map +0 -1
  63. package/lib/ObservedRemoteInboundRtp.js +0 -60
  64. package/lib/ObservedRemoteOutboundRtp.d.ts +0 -30
  65. package/lib/ObservedRemoteOutboundRtp.d.ts.map +0 -1
  66. package/lib/ObservedRemoteOutboundRtp.js +0 -60
  67. package/lib/ObservedTURN.d.ts +0 -30
  68. package/lib/ObservedTURN.d.ts.map +0 -1
  69. package/lib/ObservedTURN.js +0 -54
  70. package/lib/ObservedTurnServer.d.ts +0 -25
  71. package/lib/ObservedTurnServer.d.ts.map +0 -1
  72. package/lib/ObservedTurnServer.js +0 -59
  73. package/lib/Observer.d.ts +0 -50
  74. package/lib/Observer.d.ts.map +0 -1
  75. package/lib/Observer.js +0 -101
  76. package/lib/common/Middleware.d.ts +0 -17
  77. package/lib/common/Middleware.d.ts.map +0 -1
  78. package/lib/common/Middleware.js +0 -60
  79. package/lib/common/SingleExecutor.d.ts +0 -3
  80. package/lib/common/SingleExecutor.d.ts.map +0 -1
  81. package/lib/common/SingleExecutor.js +0 -31
  82. package/lib/common/logger.d.ts +0 -17
  83. package/lib/common/logger.d.ts.map +0 -1
  84. package/lib/common/logger.js +0 -50
  85. package/lib/common/types.d.ts +0 -3
  86. package/lib/common/types.d.ts.map +0 -1
  87. package/lib/common/types.js +0 -3
  88. package/lib/common/utils.d.ts +0 -10
  89. package/lib/common/utils.d.ts.map +0 -1
  90. package/lib/common/utils.js +0 -55
  91. package/lib/detectors/Detector.d.ts +0 -5
  92. package/lib/detectors/Detector.d.ts.map +0 -1
  93. package/lib/detectors/Detector.js +0 -3
  94. package/lib/detectors/Detectors.d.ts +0 -11
  95. package/lib/detectors/Detectors.d.ts.map +0 -1
  96. package/lib/detectors/Detectors.js +0 -34
  97. package/lib/index.d.ts +0 -26
  98. package/lib/index.d.ts.map +0 -1
  99. package/lib/index.js +0 -41
  100. package/lib/monitors/TurnUsageMonitor.d.ts +0 -1
  101. package/lib/monitors/TurnUsageMonitor.d.ts.map +0 -1
  102. package/lib/monitors/TurnUsageMonitor.js +0 -146
  103. package/lib/schema/ClientEventTypes.d.ts +0 -33
  104. package/lib/schema/ClientEventTypes.d.ts.map +0 -1
  105. package/lib/schema/ClientEventTypes.js +0 -38
  106. package/lib/schema/ClientMetaTypes.d.ts +0 -34
  107. package/lib/schema/ClientMetaTypes.d.ts.map +0 -1
  108. package/lib/schema/ClientMetaTypes.js +0 -16
  109. package/lib/schema/ClientSample.d.ts +0 -1333
  110. package/lib/schema/ClientSample.d.ts.map +0 -1
  111. package/lib/schema/ClientSample.js +0 -4
  112. package/lib/scores/CalculatedScore.d.ts +0 -6
  113. package/lib/scores/CalculatedScore.d.ts.map +0 -1
  114. package/lib/scores/CalculatedScore.js +0 -2
  115. package/lib/scores/DefaultCallScoreCalculator.d.ts +0 -7
  116. package/lib/scores/DefaultCallScoreCalculator.d.ts.map +0 -1
  117. package/lib/scores/DefaultCallScoreCalculator.js +0 -21
  118. package/lib/scores/ScoreCalculator.d.ts +0 -4
  119. package/lib/scores/ScoreCalculator.d.ts.map +0 -1
  120. package/lib/scores/ScoreCalculator.js +0 -2
  121. package/lib/utils/CallUpdater.d.ts +0 -5
  122. package/lib/utils/CallUpdater.d.ts.map +0 -1
  123. package/lib/utils/CallUpdater.js +0 -2
  124. package/lib/utils/OnAllClientCallUpdater.d.ts +0 -16
  125. package/lib/utils/OnAllClientCallUpdater.d.ts.map +0 -1
  126. package/lib/utils/OnAllClientCallUpdater.js +0 -58
  127. package/lib/utils/RemoteTrackResolver.d.ts +0 -7
  128. package/lib/utils/RemoteTrackResolver.d.ts.map +0 -1
  129. package/lib/utils/RemoteTrackResolver.js +0 -2
  130. package/lib/utils/onAnyClientCallUpdater.d.ts +0 -14
  131. package/lib/utils/onAnyClientCallUpdater.d.ts.map +0 -1
  132. package/lib/utils/onAnyClientCallUpdater.js +0 -51
  133. package/src/ObservedCall.ts +0 -176
  134. package/src/ObservedCertificate.ts +0 -43
  135. package/src/ObservedClient.ts +0 -324
  136. package/src/ObservedCodec.ts +0 -49
  137. package/src/ObservedDataChannel.ts +0 -82
  138. package/src/ObservedIceCandidate.ts +0 -64
  139. package/src/ObservedIceCandidatePair.ts +0 -118
  140. package/src/ObservedIceTransport.ts +0 -70
  141. package/src/ObservedInboundRtp.ts +0 -205
  142. package/src/ObservedInboundTrack.ts +0 -70
  143. package/src/ObservedMediaPlayout.ts +0 -49
  144. package/src/ObservedMediaSource.ts +0 -60
  145. package/src/ObservedOutboundRtp.ts +0 -156
  146. package/src/ObservedOutboundTrack.ts +0 -69
  147. package/src/ObservedPeerConnection.ts +0 -995
  148. package/src/ObservedPeerConnectionTransport.ts +0 -38
  149. package/src/ObservedRemoteInboundRtp.ts +0 -64
  150. package/src/ObservedRemoteOutboundRtp.ts +0 -65
  151. package/src/ObservedTURN.ts +0 -80
  152. package/src/ObservedTurnServer.ts +0 -72
  153. package/src/Observer.ts +0 -152
  154. package/src/common/Middleware.ts +0 -84
  155. package/src/common/SingleExecutor.ts +0 -36
  156. package/src/common/logger.ts +0 -82
  157. package/src/common/types.ts +0 -4
  158. package/src/common/utils.ts +0 -59
  159. package/src/detectors/Detector.ts +0 -6
  160. package/src/detectors/Detectors.ts +0 -38
  161. package/src/index.ts +0 -27
  162. package/src/monitors/TurnUsageMonitor.ts +0 -187
  163. package/src/schema/ClientEventTypes.ts +0 -36
  164. package/src/schema/ClientMetaTypes.ts +0 -41
  165. package/src/schema/ClientSample.ts +0 -1682
  166. package/src/scores/CalculatedScore.ts +0 -6
  167. package/src/scores/DefaultCallScoreCalculator.ts +0 -23
  168. package/src/scores/ScoreCalculator.ts +0 -3
  169. package/src/utils/CallUpdater.ts +0 -5
  170. package/src/utils/OnAllClientCallUpdater.ts +0 -68
  171. package/src/utils/RemoteTrackResolver.ts +0 -12
  172. package/src/utils/onAnyClientCallUpdater.ts +0 -59
  173. package/tsconfig.json +0 -19
  174. package/tslint.json +0 -6
@@ -1,28 +0,0 @@
1
- import { MediaKind } from './common/types';
2
- import { ObservedPeerConnection } from './ObservedPeerConnection';
3
- import { MediaSourceStats } from './schema/ClientSample';
4
- export declare class ObservedMediaSource implements MediaSourceStats {
5
- timestamp: number;
6
- id: string;
7
- kind: MediaKind;
8
- private readonly _peerConnection;
9
- private _visited;
10
- appData?: Record<string, unknown>;
11
- trackIdentifier?: string | undefined;
12
- audioLevel?: number | undefined;
13
- totalAudioEnergy?: number | undefined;
14
- totalSamplesDuration?: number | undefined;
15
- echoReturnLoss?: number | undefined;
16
- echoReturnLossEnhancement?: number | undefined;
17
- width?: number | undefined;
18
- height?: number | undefined;
19
- frames?: number | undefined;
20
- framesPerSecond?: number | undefined;
21
- attachments?: Record<string, unknown> | undefined;
22
- constructor(timestamp: number, id: string, kind: MediaKind, _peerConnection: ObservedPeerConnection);
23
- get visited(): boolean;
24
- getPeerConnection(): ObservedPeerConnection;
25
- getTrack(): import("./ObservedOutboundTrack").ObservedOutboundTrack | undefined;
26
- update(stats: MediaSourceStats): void;
27
- }
28
- //# sourceMappingURL=ObservedMediaSource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObservedMediaSource.d.ts","sourceRoot":"","sources":["../src/ObservedMediaSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,mBAAoB,YAAW,gBAAgB;IAiBnD,SAAS,EAAE,MAAM;IACjB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,SAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAnBjC,OAAO,CAAC,QAAQ,CAAS;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG1C,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACL,eAAe,EAAE,sBAAsB;IAGzD,IAAW,OAAO,YAMjB;IAEM,iBAAiB;IAIjB,QAAQ;IAIR,MAAM,CAAC,KAAK,EAAE,gBAAgB;CAgBrC"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObservedMediaSource = void 0;
4
- class ObservedMediaSource {
5
- timestamp;
6
- id;
7
- kind;
8
- _peerConnection;
9
- _visited = false;
10
- appData;
11
- trackIdentifier;
12
- audioLevel;
13
- totalAudioEnergy;
14
- totalSamplesDuration;
15
- echoReturnLoss;
16
- echoReturnLossEnhancement;
17
- width;
18
- height;
19
- frames;
20
- framesPerSecond;
21
- attachments;
22
- constructor(timestamp, id, kind, _peerConnection) {
23
- this.timestamp = timestamp;
24
- this.id = id;
25
- this.kind = kind;
26
- this._peerConnection = _peerConnection;
27
- }
28
- get visited() {
29
- const visited = this._visited;
30
- this._visited = false;
31
- return visited;
32
- }
33
- getPeerConnection() {
34
- return this._peerConnection;
35
- }
36
- getTrack() {
37
- return this._peerConnection.observedOutboundTracks.get(this.trackIdentifier ?? '');
38
- }
39
- update(stats) {
40
- this._visited = true;
41
- this.timestamp = stats.timestamp;
42
- this.trackIdentifier = stats.trackIdentifier;
43
- this.audioLevel = stats.audioLevel;
44
- this.totalAudioEnergy = stats.totalAudioEnergy;
45
- this.totalSamplesDuration = stats.totalSamplesDuration;
46
- this.echoReturnLoss = stats.echoReturnLoss;
47
- this.echoReturnLossEnhancement = stats.echoReturnLossEnhancement;
48
- this.width = stats.width;
49
- this.height = stats.height;
50
- this.frames = stats.frames;
51
- this.framesPerSecond = stats.framesPerSecond;
52
- this.attachments = stats.attachments;
53
- }
54
- }
55
- exports.ObservedMediaSource = ObservedMediaSource;
@@ -1,62 +0,0 @@
1
- import { MediaKind } from './common/types';
2
- import { ObservedPeerConnection } from './ObservedPeerConnection';
3
- import { OutboundRtpStats, QualityLimitationDurations } from './schema/ClientSample';
4
- export declare class ObservedOutboundRtp implements OutboundRtpStats {
5
- timestamp: number;
6
- id: string;
7
- ssrc: number;
8
- kind: MediaKind;
9
- private readonly _peerConnection;
10
- private _visited;
11
- appData?: Record<string, unknown>;
12
- transportId?: string | undefined;
13
- codecId?: string | undefined;
14
- packetsSent?: number | undefined;
15
- bytesSent?: number | undefined;
16
- mid?: string | undefined;
17
- mediaSourceId?: string | undefined;
18
- remoteId?: string | undefined;
19
- rid?: string | undefined;
20
- headerBytesSent?: number | undefined;
21
- retransmittedPacketsSent?: number | undefined;
22
- retransmittedBytesSent?: number | undefined;
23
- rtxSsrc?: number | undefined;
24
- targetBitrate?: number | undefined;
25
- totalEncodedBytesTarget?: number | undefined;
26
- frameWidth?: number | undefined;
27
- frameHeight?: number | undefined;
28
- framesPerSecond?: number | undefined;
29
- framesSent?: number | undefined;
30
- hugeFramesSent?: number | undefined;
31
- framesEncoded?: number | undefined;
32
- keyFramesEncoded?: number | undefined;
33
- qpSum?: number | undefined;
34
- totalEncodeTime?: number | undefined;
35
- totalPacketSendDelay?: number | undefined;
36
- qualityLimitationReason?: string | undefined;
37
- qualityLimitationResolutionChanges?: number | undefined;
38
- nackCount?: number | undefined;
39
- firCount?: number | undefined;
40
- pliCount?: number | undefined;
41
- encoderImplementation?: string | undefined;
42
- powerEfficientEncoder?: boolean | undefined;
43
- active?: boolean | undefined;
44
- scalabilityMode?: string | undefined;
45
- qualityLimitationDurations?: QualityLimitationDurations | undefined;
46
- attachments?: Record<string, unknown> | undefined;
47
- bitrate: number;
48
- payloadBitrate: number;
49
- packetRate: number;
50
- bitPerPixel: number;
51
- deltaPacketsSent: number;
52
- deltaBytesSent: number;
53
- constructor(timestamp: number, id: string, ssrc: number, kind: MediaKind, _peerConnection: ObservedPeerConnection);
54
- get visited(): boolean;
55
- getPeerConnection(): ObservedPeerConnection;
56
- getRemoteInboundRtp(): import("./ObservedRemoteInboundRtp").ObservedRemoteInboundRtp | undefined;
57
- getCodec(): import("./ObservedCodec").ObservedCodec | undefined;
58
- getMediaSource(): import("./ObservedMediaSource").ObservedMediaSource | undefined;
59
- getTrack(): import("./ObservedOutboundTrack").ObservedOutboundTrack | undefined;
60
- update(stats: OutboundRtpStats): void;
61
- }
62
- //# sourceMappingURL=ObservedOutboundRtp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObservedOutboundRtp.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundRtp.ts"],"names":[],"mappings":"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"}
@@ -1,144 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObservedOutboundRtp = void 0;
4
- class ObservedOutboundRtp {
5
- timestamp;
6
- id;
7
- ssrc;
8
- kind;
9
- _peerConnection;
10
- _visited = false;
11
- appData;
12
- transportId;
13
- codecId;
14
- packetsSent;
15
- bytesSent;
16
- mid;
17
- mediaSourceId;
18
- remoteId;
19
- rid;
20
- headerBytesSent;
21
- retransmittedPacketsSent;
22
- retransmittedBytesSent;
23
- rtxSsrc;
24
- targetBitrate;
25
- totalEncodedBytesTarget;
26
- frameWidth;
27
- frameHeight;
28
- framesPerSecond;
29
- framesSent;
30
- hugeFramesSent;
31
- framesEncoded;
32
- keyFramesEncoded;
33
- qpSum;
34
- totalEncodeTime;
35
- totalPacketSendDelay;
36
- qualityLimitationReason;
37
- qualityLimitationResolutionChanges;
38
- nackCount;
39
- firCount;
40
- pliCount;
41
- encoderImplementation;
42
- powerEfficientEncoder;
43
- active;
44
- scalabilityMode;
45
- qualityLimitationDurations;
46
- attachments;
47
- // derived fields
48
- bitrate = 0;
49
- payloadBitrate = 0;
50
- packetRate = 0;
51
- bitPerPixel = 0;
52
- deltaPacketsSent = 0;
53
- deltaBytesSent = 0;
54
- constructor(timestamp, id, ssrc, kind, _peerConnection) {
55
- this.timestamp = timestamp;
56
- this.id = id;
57
- this.ssrc = ssrc;
58
- this.kind = kind;
59
- this._peerConnection = _peerConnection;
60
- }
61
- get visited() {
62
- const visited = this._visited;
63
- this._visited = false;
64
- return visited;
65
- }
66
- getPeerConnection() {
67
- return this._peerConnection;
68
- }
69
- getRemoteInboundRtp() {
70
- return this._peerConnection.observedRemoteInboundRtps.get(this.ssrc);
71
- }
72
- getCodec() {
73
- return this._peerConnection.observedCodecs.get(this.codecId ?? '');
74
- }
75
- getMediaSource() {
76
- return this._peerConnection.observedMediaSources.get(this.mediaSourceId ?? '');
77
- }
78
- getTrack() {
79
- return this.getMediaSource()?.getTrack();
80
- }
81
- update(stats) {
82
- this._visited = true;
83
- this.bitPerPixel = 0;
84
- this.bitrate = 0;
85
- this.payloadBitrate = 0;
86
- this.packetRate = 0;
87
- this.deltaPacketsSent = 0;
88
- this.deltaBytesSent = 0;
89
- const elapsedTimeInMs = stats.timestamp - this.timestamp;
90
- if (elapsedTimeInMs) {
91
- if (stats.packetsSent !== undefined && this.packetsSent !== undefined) {
92
- this.deltaPacketsSent = stats.packetsSent - this.packetsSent;
93
- this.packetRate = this.deltaPacketsSent / (elapsedTimeInMs / 1000);
94
- }
95
- if (stats.bytesSent !== undefined && this.bytesSent !== undefined) {
96
- this.deltaBytesSent = stats.bytesSent - this.bytesSent;
97
- this.bitrate = (this.deltaBytesSent * 8) / (elapsedTimeInMs / 1000);
98
- }
99
- if (stats.headerBytesSent !== undefined && this.headerBytesSent !== undefined) {
100
- this.payloadBitrate = ((this.deltaBytesSent ?? 0 - (stats.headerBytesSent - this.headerBytesSent)) * 8) / (elapsedTimeInMs / 1000);
101
- }
102
- if (this.framesSent !== undefined && stats.framesSent !== undefined) {
103
- this.bitPerPixel = this.deltaBytesSent ? (this.deltaBytesSent * 8) / (this.framesSent - stats.framesSent) : 0;
104
- }
105
- }
106
- this.timestamp = stats.timestamp;
107
- this.transportId = stats.transportId;
108
- this.codecId = stats.codecId;
109
- this.packetsSent = stats.packetsSent;
110
- this.bytesSent = stats.bytesSent;
111
- this.mid = stats.mid;
112
- this.mediaSourceId = stats.mediaSourceId;
113
- this.remoteId = stats.remoteId;
114
- this.rid = stats.rid;
115
- this.headerBytesSent = stats.headerBytesSent;
116
- this.retransmittedPacketsSent = stats.retransmittedPacketsSent;
117
- this.retransmittedBytesSent = stats.retransmittedBytesSent;
118
- this.rtxSsrc = stats.rtxSsrc;
119
- this.targetBitrate = stats.targetBitrate;
120
- this.totalEncodedBytesTarget = stats.totalEncodedBytesTarget;
121
- this.frameWidth = stats.frameWidth;
122
- this.frameHeight = stats.frameHeight;
123
- this.framesPerSecond = stats.framesPerSecond;
124
- this.framesSent = stats.framesSent;
125
- this.hugeFramesSent = stats.hugeFramesSent;
126
- this.framesEncoded = stats.framesEncoded;
127
- this.keyFramesEncoded = stats.keyFramesEncoded;
128
- this.qpSum = stats.qpSum;
129
- this.totalEncodeTime = stats.totalEncodeTime;
130
- this.totalPacketSendDelay = stats.totalPacketSendDelay;
131
- this.qualityLimitationReason = stats.qualityLimitationReason;
132
- this.qualityLimitationResolutionChanges = stats.qualityLimitationResolutionChanges;
133
- this.nackCount = stats.nackCount;
134
- this.firCount = stats.firCount;
135
- this.pliCount = stats.pliCount;
136
- this.encoderImplementation = stats.encoderImplementation;
137
- this.powerEfficientEncoder = stats.powerEfficientEncoder;
138
- this.active = stats.active;
139
- this.scalabilityMode = stats.scalabilityMode;
140
- this.qualityLimitationDurations = stats.qualityLimitationDurations;
141
- this.attachments = stats.attachments;
142
- }
143
- }
144
- exports.ObservedOutboundRtp = ObservedOutboundRtp;
@@ -1,29 +0,0 @@
1
- import { CalculatedScore } from './scores/CalculatedScore';
2
- import { MediaKind } from './common/types';
3
- import { OutboundTrackSample } from './schema/ClientSample';
4
- import { Detectors } from './detectors/Detectors';
5
- import { ObservedPeerConnection } from './ObservedPeerConnection';
6
- import { ObservedOutboundRtp } from './ObservedOutboundRtp';
7
- import { ObservedMediaSource } from './ObservedMediaSource';
8
- export declare class ObservedOutboundTrack implements OutboundTrackSample {
9
- timestamp: number;
10
- readonly id: string;
11
- readonly kind: MediaKind;
12
- private readonly _peerConnection;
13
- private readonly _outboundRtps?;
14
- private readonly _mediaSource?;
15
- readonly detectors: Detectors;
16
- private _visited;
17
- appData?: Record<string, unknown>;
18
- readonly calculatedScore: CalculatedScore;
19
- attachments?: Record<string, unknown> | undefined;
20
- constructor(timestamp: number, id: string, kind: MediaKind, _peerConnection: ObservedPeerConnection, _outboundRtps?: ObservedOutboundRtp[] | undefined, _mediaSource?: ObservedMediaSource | undefined);
21
- get score(): number | undefined;
22
- get visited(): boolean;
23
- getPeerConnection(): ObservedPeerConnection;
24
- getOutboundRtps(): ObservedOutboundRtp[] | undefined;
25
- getMediaSource(): ObservedMediaSource | undefined;
26
- getRemoteInboundTracks(): import("./ObservedInboundTrack").ObservedInboundTrack[] | undefined;
27
- update(stats: OutboundTrackSample): void;
28
- }
29
- //# sourceMappingURL=ObservedOutboundTrack.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObservedOutboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,qBAAsB,YAAW,mBAAmB;IAYxD,SAAS,EAAE,MAAM;aACR,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAhB/B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAS;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,SAAgB,eAAe,EAAE,eAAe,CAG9C;IAEF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG1C,SAAS,EAAE,MAAM,EACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACd,eAAe,EAAE,sBAAsB,EACvC,aAAa,CAAC,mCAAuB,EACrC,YAAY,CAAC,iCAAqB;IAKpD,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,YAMjB;IAEM,iBAAiB;IAIjB,eAAe;IAIf,cAAc;IAId,sBAAsB;IAItB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;CAU/C"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObservedOutboundTrack = void 0;
4
- const Detectors_1 = require("./detectors/Detectors");
5
- class ObservedOutboundTrack {
6
- timestamp;
7
- id;
8
- kind;
9
- _peerConnection;
10
- _outboundRtps;
11
- _mediaSource;
12
- detectors;
13
- _visited = false;
14
- appData;
15
- calculatedScore = {
16
- weight: 1,
17
- value: undefined,
18
- };
19
- attachments;
20
- constructor(timestamp, id, kind, _peerConnection, _outboundRtps, _mediaSource) {
21
- this.timestamp = timestamp;
22
- this.id = id;
23
- this.kind = kind;
24
- this._peerConnection = _peerConnection;
25
- this._outboundRtps = _outboundRtps;
26
- this._mediaSource = _mediaSource;
27
- this.detectors = new Detectors_1.Detectors();
28
- }
29
- get score() {
30
- return this.calculatedScore.value;
31
- }
32
- get visited() {
33
- const visited = this._visited;
34
- this._visited = false;
35
- return visited;
36
- }
37
- getPeerConnection() {
38
- return this._peerConnection;
39
- }
40
- getOutboundRtps() {
41
- return this._outboundRtps;
42
- }
43
- getMediaSource() {
44
- return this._mediaSource;
45
- }
46
- getRemoteInboundTracks() {
47
- return this._peerConnection.client.call.remoteTrackResolver?.resolveRemoteInboundTracks(this);
48
- }
49
- update(stats) {
50
- this._visited = true;
51
- this.timestamp = stats.timestamp;
52
- this.calculatedScore.value = stats.score;
53
- this.attachments = stats.attachments;
54
- this.detectors.update();
55
- }
56
- }
57
- exports.ObservedOutboundTrack = ObservedOutboundTrack;
@@ -1,183 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { ObservedClient } from './ObservedClient';
4
- import { OutboundTrackSample, PeerConnectionSample } from './schema/ClientSample';
5
- import { ObservedInboundRtp } from './ObservedInboundRtp';
6
- import { ObservedOutboundRtp } from './ObservedOutboundRtp';
7
- import { ObservedCertificate } from './ObservedCertificate';
8
- import { ObservedCodec } from './ObservedCodec';
9
- import { ObservedDataChannel } from './ObservedDataChannel';
10
- import { ObservedIceCandidate } from './ObservedIceCandidate';
11
- import { ObservedIceCandidatePair } from './ObservedIceCandidatePair';
12
- import { ObservedIceTransport } from './ObservedIceTransport';
13
- import { ObservedMediaSource } from './ObservedMediaSource';
14
- import { ObservedPeerConnectionTransport } from './ObservedPeerConnectionTransport';
15
- import { ObservedMediaPlayout } from './ObservedMediaPlayout';
16
- import { ObservedRemoteInboundRtp } from './ObservedRemoteInboundRtp';
17
- import { ObservedRemoteOutboundRtp } from './ObservedRemoteOutboundRtp';
18
- import { ObservedInboundTrack } from './ObservedInboundTrack';
19
- import { ObservedOutboundTrack } from './ObservedOutboundTrack';
20
- import { CalculatedScore } from './scores/CalculatedScore';
21
- import { ObservedTurnServer } from './ObservedTurnServer';
22
- export type ObservedPeerConnectionEvents = {
23
- iceconnectionstatechange: [
24
- {
25
- state: string;
26
- }
27
- ];
28
- icegatheringstatechange: [
29
- {
30
- state: string;
31
- }
32
- ];
33
- connectionstatechange: [
34
- {
35
- state: string;
36
- }
37
- ];
38
- selectedcandidatepair: [];
39
- 'added-certificate': [ObservedCertificate];
40
- 'added-codec': [ObservedCodec];
41
- 'added-data-channel': [ObservedDataChannel];
42
- 'added-ice-candidate': [ObservedIceCandidate];
43
- 'added-ice-candidate-pair': [ObservedIceCandidatePair];
44
- 'added-ice-transport': [ObservedIceTransport];
45
- 'added-inbound-rtp': [ObservedInboundRtp];
46
- 'added-inbound-track': [ObservedInboundTrack];
47
- 'added-media-playout': [ObservedMediaPlayout];
48
- 'added-media-source': [ObservedMediaSource];
49
- 'added-outbound-rtp': [ObservedOutboundRtp];
50
- 'added-outbound-track': [ObservedOutboundTrack];
51
- 'added-peer-connection-transport': [ObservedPeerConnectionTransport];
52
- 'added-remote-inbound-rtp': [ObservedRemoteInboundRtp];
53
- 'added-remote-outbound-rtp': [ObservedRemoteOutboundRtp];
54
- 'removed-certificate': [ObservedCertificate];
55
- 'removed-codec': [ObservedCodec];
56
- 'removed-data-channel': [ObservedDataChannel];
57
- 'removed-ice-candidate': [ObservedIceCandidate];
58
- 'removed-ice-candidate-pair': [ObservedIceCandidatePair];
59
- 'removed-ice-transport': [ObservedIceTransport];
60
- 'removed-inbound-rtp': [ObservedInboundRtp];
61
- 'removed-inbound-track': [ObservedInboundTrack];
62
- 'removed-media-playout': [ObservedMediaPlayout];
63
- 'removed-media-source': [ObservedMediaSource];
64
- 'removed-outbound-rtp': [ObservedOutboundRtp];
65
- 'removed-outbound-track': [ObservedOutboundTrack];
66
- 'removed-peer-connection-transport': [ObservedPeerConnectionTransport];
67
- 'removed-remote-inbound-rtp': [ObservedRemoteInboundRtp];
68
- 'removed-remote-outbound-rtp': [ObservedRemoteOutboundRtp];
69
- 'update': [];
70
- close: [];
71
- };
72
- export declare interface ObservedPeerConnection {
73
- on<U extends keyof ObservedPeerConnectionEvents>(event: U, listener: (...args: ObservedPeerConnectionEvents[U]) => void): this;
74
- off<U extends keyof ObservedPeerConnectionEvents>(event: U, listener: (...args: ObservedPeerConnectionEvents[U]) => void): this;
75
- once<U extends keyof ObservedPeerConnectionEvents>(event: U, listener: (...args: ObservedPeerConnectionEvents[U]) => void): this;
76
- emit<U extends keyof ObservedPeerConnectionEvents>(event: U, ...args: ObservedPeerConnectionEvents[U]): boolean;
77
- }
78
- export declare class ObservedPeerConnection extends EventEmitter {
79
- readonly peerConnectionId: string;
80
- readonly client: ObservedClient;
81
- private _visited;
82
- appData?: Record<string, unknown>;
83
- readonly calculatedScore: CalculatedScore;
84
- closed: boolean;
85
- openedAt?: number;
86
- closedAt?: number;
87
- updated: number;
88
- availableIncomingBitrate: number;
89
- availableOutgoingBitrate: number;
90
- totalInboundPacketsLost: number;
91
- totalInboundPacketsReceived: number;
92
- totalOutboundPacketsSent: number;
93
- totalDataChannelBytesSent: number;
94
- totalDataChannelBytesReceived: number;
95
- totalDataChannelMessagesSent: number;
96
- totalDataChannelMessagesReceived: number;
97
- totalSentAudioBytes: number;
98
- totalSentVideoBytes: number;
99
- totalSentAudioPackets: number;
100
- totalSentVideoPackets: number;
101
- totalReceivedAudioPacktes: number;
102
- totalReceivedVideoPackets: number;
103
- totalReceivedAudioBytes: number;
104
- totalReceivedVideoBytes: number;
105
- deltaInboundPacketsLost: number;
106
- deltaInboundPacketsReceived: number;
107
- deltaOutboundPacketsSent: number;
108
- deltaDataChannelBytesSent: number;
109
- deltaDataChannelBytesReceived: number;
110
- deltaDataChannelMessagesSent: number;
111
- deltaDataChannelMessagesReceived: number;
112
- deltaInboundReceivedBytes: number;
113
- deltaOutboundSentBytes: number;
114
- deltaReceivedAudioBytes: number;
115
- deltaReceivedVideoBytes: number;
116
- deltaReceivedAudioPackets: number;
117
- deltaReceivedVideoPackets: number;
118
- deltaSentAudioBytes: number;
119
- deltaSentVideoBytes: number;
120
- receivingPacketsPerSecond: number;
121
- sendingPacketsPerSecond: number;
122
- sendingAudioBitrate: number;
123
- sendingVideoBitrate: number;
124
- receivingAudioBitrate: number;
125
- receivingVideoBitrate: number;
126
- avgRttInMs?: number;
127
- avgJitter?: number;
128
- usingTCP: boolean;
129
- usingTURN: boolean;
130
- observedTurnServer?: ObservedTurnServer;
131
- readonly observedCertificates: Map<string, ObservedCertificate>;
132
- readonly observedCodecs: Map<string, ObservedCodec>;
133
- readonly observedDataChannels: Map<string, ObservedDataChannel>;
134
- readonly observedIceCandidates: Map<string, ObservedIceCandidate>;
135
- readonly observedIceCandidatesPair: Map<string, ObservedIceCandidatePair>;
136
- readonly observedIceTransports: Map<string, ObservedIceTransport>;
137
- readonly observedInboundRtps: Map<number, ObservedInboundRtp>;
138
- readonly observedInboundTracks: Map<string, ObservedInboundTrack>;
139
- readonly observedMediaPlayouts: Map<string, ObservedMediaPlayout>;
140
- readonly observedMediaSources: Map<string, ObservedMediaSource>;
141
- readonly observedOutboundRtps: Map<number, ObservedOutboundRtp>;
142
- readonly observedOutboundTracks: Map<string, ObservedOutboundTrack>;
143
- readonly observedPeerConnectionTransports: Map<string, ObservedPeerConnectionTransport>;
144
- readonly observedRemoteInboundRtps: Map<number, ObservedRemoteInboundRtp>;
145
- readonly observedRemoteOutboundRtps: Map<number, ObservedRemoteOutboundRtp>;
146
- constructor(peerConnectionId: string, client: ObservedClient);
147
- get score(): number | undefined;
148
- get visited(): boolean;
149
- get codecs(): ObservedCodec[];
150
- get inboundRtps(): ObservedInboundRtp[];
151
- get remoteOutboundRtps(): ObservedRemoteOutboundRtp[];
152
- get outboundRtps(): ObservedOutboundRtp[];
153
- get remoteInboundRtps(): ObservedRemoteInboundRtp[];
154
- get mediaSources(): ObservedMediaSource[];
155
- get mediaPlayouts(): ObservedMediaPlayout[];
156
- get dataChannels(): ObservedDataChannel[];
157
- get peerConnectionTransports(): ObservedPeerConnectionTransport[];
158
- get iceTransports(): ObservedIceTransport[];
159
- get iceCandidates(): ObservedIceCandidate[];
160
- get iceCandidatePairs(): ObservedIceCandidatePair[];
161
- get certificates(): ObservedCertificate[];
162
- get selectedIceCandidatePairs(): ObservedIceCandidatePair[];
163
- get selectedIceCandiadtePairForTurn(): ObservedIceCandidatePair[];
164
- close(): void;
165
- accept(sample: PeerConnectionSample): void;
166
- private _checkVisited;
167
- private _updateCertificateStats;
168
- private _updateCodecStats;
169
- private _updateDataChannelStats;
170
- private _updateIceCandidateStats;
171
- private _updateIceCandidatePairStats;
172
- private _updateIceTransportStats;
173
- private _updateInboundRtpStats;
174
- private _updateInboundTrackSample;
175
- private _updateMediaPlayoutStats;
176
- private _updateMediaSourceStats;
177
- private _updateOutboundRtpStats;
178
- _updateOutboundTrackSample(stats: OutboundTrackSample): void | ObservedOutboundTrack;
179
- private _updatePeerConnectionTransportStats;
180
- private _updateRemoteInboundRtpStats;
181
- private _updateRemoteOutboundRtpStats;
182
- }
183
- //# sourceMappingURL=ObservedPeerConnection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObservedPeerConnection.d.ts","sourceRoot":"","sources":["../src/ObservedPeerConnection.ts"],"names":[],"mappings":"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"}