From a73a38b7369b599eead19b522066fe6fbc347f59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Thu, 18 Mar 2021 12:45:58 +0100 Subject: [PATCH] webrtc stats: computed fps, fixes #10. --- src/component/internal/webrtc.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/component/internal/webrtc.ts b/src/component/internal/webrtc.ts index ba22dfec..9a56720a 100644 --- a/src/component/internal/webrtc.ts +++ b/src/component/internal/webrtc.ts @@ -311,6 +311,7 @@ export class NekoWebRTC extends EventEmitter { private statsEmitter(ms: number = 2000) { let bytesReceived: number let timestamp: number + let framesDecoded: number let packetsLost: number let packetsReceived: number @@ -342,13 +343,14 @@ export class NekoWebRTC extends EventEmitter { if (timestamp) { const bytesDiff = (report.bytesReceived - bytesReceived) * 8 const tsDiff = report.timestamp - timestamp + const framesDecodedDiff = report.framesDecoded - framesDecoded const packetsLostDiff = report.packetsLost - packetsLost const packetsReceivedDiff = report.packetsReceived - packetsReceived this.emit('stats', { bitrate: (bytesDiff / tsDiff) * 1000, packetLoss: (packetsLostDiff / (packetsLostDiff + packetsReceivedDiff)) * 100, - fps: Number(report.framesPerSecond || report.framerateMean), + fps: Number(report.framesPerSecond || (framesDecodedDiff / (tsDiff / 1000))), width: report.frameWidth || NaN, height: report.frameHeight || NaN, }) @@ -356,6 +358,7 @@ export class NekoWebRTC extends EventEmitter { bytesReceived = report.bytesReceived timestamp = report.timestamp + framesDecoded = report.framesDecoded packetsLost = report.packetsLost packetsReceived = report.packetsReceived }, ms)