Add LossRate and JitterBufferSize to call stats

This commit is contained in:
QuentinArguillere 2024-10-16 18:34:33 +02:00
parent 3203cb3ccc
commit fa6034a426
2 changed files with 31 additions and 0 deletions

View file

@ -66,6 +66,16 @@ struct CallStatisticsSheetBottomSheet: View {
Spacer()
Text(callViewModel.callStatsModel.audioLossRate)
.default_text_style_white(styleSize: 15)
Spacer()
Text(callViewModel.callStatsModel.audioJitterBufferSize)
.default_text_style_white(styleSize: 15)
Spacer()
if callViewModel.callStatsModel.isVideoEnabled {
Text("Vidéo")
.default_text_style_white_600(styleSize: 15)
@ -83,6 +93,11 @@ struct CallStatisticsSheetBottomSheet: View {
Spacer()
Text(callViewModel.callStatsModel.videoLossRate)
.default_text_style_white(styleSize: 15)
Spacer()
Text(callViewModel.callStatsModel.videoResolution)
.default_text_style_white(styleSize: 15)

View file

@ -25,10 +25,13 @@ class CallStatsModel: ObservableObject {
@Published var audioCodec = ""
@Published var audioBandwidth = ""
@Published var audioLossRate = ""
@Published var audioJitterBufferSize = ""
@Published var isVideoEnabled = false
@Published var videoCodec = ""
@Published var videoBandwidth = ""
@Published var videoLossRate = ""
@Published var videoResolution = ""
@Published var videoFps = ""
@ -52,9 +55,17 @@ class CallStatsModel: ObservableObject {
let downloadBandwidth = Int(stats.downloadBandwidth.rounded())
let bandwidthLabel = "Bandwidth: " + "\(uploadBandwidth) kbits/s ↓ \(downloadBandwidth) kbits/s"
let senderLossRate = Int(stats.senderLossRate.rounded())
let receiverLossRate = Int(stats.receiverLossRate.rounded())
let lossRateLabel = "Lossrate: ↑ \(senderLossRate)% ↓ \(receiverLossRate)%"
let jitterBufferSize = Int(stats.jitterBufferSizeMs.rounded())
let jitterBufferSizeLabel = "Jitter buffer: \(jitterBufferSize)ms"
DispatchQueue.main.async {
self.audioCodec = codecLabel
self.audioBandwidth = bandwidthLabel
self.audioLossRate = lossRateLabel
self.audioJitterBufferSize = jitterBufferSizeLabel
}
}
case .Video:
@ -72,6 +83,10 @@ class CallStatsModel: ObservableObject {
let downloadBandwidth = Int(stats.downloadBandwidth.rounded())
let bandwidthLabel = "Bandwidth: " + "\(uploadBandwidth) kbits/s ↓ \(downloadBandwidth) kbits/s"
let senderLossRate = Int(stats.senderLossRate.rounded())
let receiverLossRate = Int(stats.receiverLossRate.rounded())
let lossRateLabel = "Lossrate: ↑ \(senderLossRate)% ↓ \(receiverLossRate)%"
let sentResolution = call.currentParams!.sentVideoDefinition!.name
let receivedResolution = call.currentParams!.receivedVideoDefinition!.name
let resolutionLabel = "Resolution: " + "\(sentResolution!)\(receivedResolution!)"
@ -83,6 +98,7 @@ class CallStatsModel: ObservableObject {
DispatchQueue.main.async {
self.videoCodec = codecLabel
self.videoBandwidth = bandwidthLabel
self.videoLossRate = lossRateLabel
self.videoResolution = resolutionLabel
self.videoFps = fpsLabel
}