@@ -75,7 +75,7 @@ - (void)scheduleNextScreenshotWithInterval:(uint64_t)timerInterval timeStarted:(
7575 return ;
7676 }
7777 uint64_t timeElapsed = clock_gettime_nsec_np (CLOCK_MONOTONIC_RAW ) - timeStarted;
78- int64_t nextTickDelta = timerInterval - timeElapsed;
78+ int64_t nextTickDelta = ( int64_t ) timerInterval - ( int64_t ) timeElapsed;
7979 __weak typeof (self) weakSelf = self;
8080 if (nextTickDelta > 0 ) {
8181 dispatch_after (dispatch_time (DISPATCH_TIME_NOW , nextTickDelta), self.backgroundQueue , ^{
@@ -136,21 +136,28 @@ - (void)streamScreenshot
136136}
137137
138138- (void )sendScreenshot : (NSData *)screenshotData {
139+ if (!self.isStreaming ) {
140+ return ;
141+ }
139142 NSString *chunkHeader = [NSString stringWithFormat: @" --BoundaryString\r\n Content-type: image/jpeg\r\n Content-Length: %@ \r\n\r\n " , @(screenshotData.length)];
140143 NSMutableData *chunk = [[chunkHeader dataUsingEncoding: NSUTF8StringEncoding] mutableCopy ];
141144 [chunk appendData: screenshotData];
142145 [chunk appendData: (id )[@" \r\n\r\n " dataUsingEncoding: NSUTF8StringEncoding]];
143146 @synchronized (self.listeningClients ) {
147+ if (!self.isStreaming || 0 == self.listeningClients .count ) {
148+ return ;
149+ }
150+ NSUInteger clientCount = self.listeningClients .count ;
144151 for (GCDAsyncSocket *client in self.listeningClients ) {
145152 // Slow clients should fail/close instead of buffering indefinitely.
146153 [client writeData: chunk withTimeout: FRAME_TIMEOUT tag: 0 ];
147154 }
148155 self.sentFramesCount ++;
149- self.sentBytesCount += chunk.length * self. listeningClients . count ;
156+ self.sentBytesCount += chunk.length * clientCount ;
150157 NSUInteger framerate = FBNormalizedMjpegFramerate (FBConfiguration.mjpegServerFramerate );
151158 if (0 == self.sentFramesCount % framerate) {
152159 [FBLogger verboseLog: [NSString stringWithFormat: @" MJPEG stats: clients=%@ sentFrames=%@ sentBytes=%@ " ,
153- @(self .listeningClients.count ),
160+ @(clientCount ),
154161 @(self .sentFramesCount),
155162 @(self .sentBytesCount)]];
156163 }
0 commit comments