@@ -3,14 +3,14 @@ import {
3
3
CompositeStatsParser ,
4
4
DetectIssuesPayload ,
5
5
EventType ,
6
+ INetworkScoresCalculator ,
6
7
IssueDetector ,
7
8
IssuePayload ,
8
- INetworkScoresCalculator ,
9
+ Logger ,
9
10
StatsReportItem ,
10
11
WebRTCIssueDetectorConstructorParams ,
11
12
WebRTCStatsParsed ,
12
13
WIDWindow ,
13
- Logger ,
14
14
} from './types' ;
15
15
import PeriodicWebRTCStatsReporter from './parser/PeriodicWebRTCStatsReporter' ;
16
16
import DefaultNetworkScoresCalculator from './NetworkScoresCalculator' ;
@@ -21,7 +21,8 @@ import {
21
21
InboundNetworkIssueDetector ,
22
22
NetworkMediaSyncIssueDetector ,
23
23
OutboundNetworkIssueDetector ,
24
- QualityLimitationsIssueDetector , VideoCodecMismatchDetector ,
24
+ QualityLimitationsIssueDetector ,
25
+ VideoCodecMismatchDetector ,
25
26
} from './detectors' ;
26
27
import { CompositeRTCStatsParser , RTCStatsParser } from './parser' ;
27
28
import createLogger from './utils/logger' ;
@@ -84,13 +85,24 @@ class WebRTCIssueDetector {
84
85
85
86
this . calculateNetworkScores ( report . stats ) ;
86
87
} ) ;
88
+
89
+ this . statsReporter . on ( PeriodicWebRTCStatsReporter . STATS_REPORTS_PARSED , ( data : { timeTaken : number } ) => {
90
+ const payload = {
91
+ timeTaken : data . timeTaken ,
92
+ ts : Date . now ( ) ,
93
+ } ;
94
+
95
+ this . eventEmitter . emit ( EventType . StatsParsingFinished , payload ) ;
96
+ } ) ;
87
97
}
88
98
89
99
public watchNewPeerConnections ( ) : void {
90
100
if ( this . #running) {
91
101
throw new Error ( 'WebRTCIssueDetector is already started' ) ;
92
102
}
93
103
104
+ this . logger . info ( 'Start watching peer connections' ) ;
105
+
94
106
this . #running = true ;
95
107
this . statsReporter . startReporting ( ) ;
96
108
}
@@ -100,6 +112,8 @@ class WebRTCIssueDetector {
100
112
throw new Error ( 'WebRTCIssueDetector is already stopped' ) ;
101
113
}
102
114
115
+ this . logger . info ( 'Stop watching peer connections' ) ;
116
+
103
117
this . #running = false ;
104
118
this . statsReporter . stopReporting ( ) ;
105
119
}
@@ -143,6 +157,7 @@ class WebRTCIssueDetector {
143
157
144
158
private wrapRTCPeerConnection ( ) : void {
145
159
if ( ! window . RTCPeerConnection ) {
160
+ this . logger . warn ( 'No RTCPeerConnection found in browser window. Skipping' ) ;
146
161
return ;
147
162
}
148
163
0 commit comments