mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 04:03:59 +02:00
updated Stats for new AudioStreamStats format
This commit is contained in:
parent
a7ef7647ed
commit
6c85caaa54
2 changed files with 21 additions and 29 deletions
|
@ -278,33 +278,33 @@ QString AudioMixerClientData::getAudioStreamStatsString() const {
|
|||
+ " not mixed:" + QString::number(streamStats._ringBufferConsecutiveNotMixedCount)
|
||||
+ " overflows:" + QString::number(streamStats._ringBufferOverflowCount)
|
||||
+ " silents dropped: ?"
|
||||
+ " lost %:" + QString::number(streamStats._packetStreamStats.getLostRate(), 'g', 2)
|
||||
+ " lost % 30s:" + QString::number(streamStats._packetStreamWindowStats.getLostRate(), 'g', 2)
|
||||
+ " lost %:" + QString::number(streamStats._packetStreamStats.getLostRate(), 'f', 2)
|
||||
+ " lost % 30s:" + QString::number(streamStats._packetStreamWindowStats.getLostRate(), 'f', 2)
|
||||
+ " min gap:" + QString::number(streamStats._timeGapMin)
|
||||
+ " max gap:" + QString::number(streamStats._timeGapMax)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'g', 2)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'f', 2)
|
||||
+ " min 30s gap:" + QString::number(streamStats._timeGapWindowMin)
|
||||
+ " max 30s gap:" + QString::number(streamStats._timeGapWindowMax)
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'g', 2);
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'f', 2);
|
||||
|
||||
AvatarAudioRingBuffer* avatarRingBuffer = getAvatarAudioRingBuffer();
|
||||
if (avatarRingBuffer) {
|
||||
AudioStreamStats streamStats = getAudioStreamStatsOfStream(avatarRingBuffer);
|
||||
result += "mic.desired:" + QString::number(streamStats._ringBufferDesiredJitterBufferFrames)
|
||||
result += " mic.desired:" + QString::number(streamStats._ringBufferDesiredJitterBufferFrames)
|
||||
+ " current:" + QString::number(streamStats._ringBufferCurrentJitterBufferFrames)
|
||||
+ " available:" + QString::number(streamStats._ringBufferFramesAvailable)
|
||||
+ " starves:" + QString::number(streamStats._ringBufferStarveCount)
|
||||
+ " not mixed:" + QString::number(streamStats._ringBufferConsecutiveNotMixedCount)
|
||||
+ " overflows:" + QString::number(streamStats._ringBufferOverflowCount)
|
||||
+ " silents dropped:" + QString::number(streamStats._ringBufferSilentFramesDropped)
|
||||
+ " lost %:" + QString::number(streamStats._packetStreamStats.getLostRate(), 'g', 2)
|
||||
+ " lost % 30s:" + QString::number(streamStats._packetStreamWindowStats.getLostRate(), 'g', 2)
|
||||
+ " lost %:" + QString::number(streamStats._packetStreamStats.getLostRate(), 'f', 2)
|
||||
+ " lost % 30s:" + QString::number(streamStats._packetStreamWindowStats.getLostRate(), 'f', 2)
|
||||
+ " min gap:" + QString::number(streamStats._timeGapMin)
|
||||
+ " max gap:" + QString::number(streamStats._timeGapMax)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'g', 2)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'f', 2)
|
||||
+ " min 30s gap:" + QString::number(streamStats._timeGapWindowMin)
|
||||
+ " max 30s gap:" + QString::number(streamStats._timeGapWindowMax)
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'g', 2);
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'f', 2);
|
||||
} else {
|
||||
result = "mic unknown";
|
||||
}
|
||||
|
@ -312,21 +312,21 @@ QString AudioMixerClientData::getAudioStreamStatsString() const {
|
|||
for (int i = 0; i < _ringBuffers.size(); i++) {
|
||||
if (_ringBuffers[i]->getType() == PositionalAudioRingBuffer::Injector) {
|
||||
AudioStreamStats streamStats = getAudioStreamStatsOfStream(_ringBuffers[i]);
|
||||
result += "inj.desired:" + QString::number(streamStats._ringBufferDesiredJitterBufferFrames)
|
||||
result += " inj.desired:" + QString::number(streamStats._ringBufferDesiredJitterBufferFrames)
|
||||
+ " current:" + QString::number(streamStats._ringBufferCurrentJitterBufferFrames)
|
||||
+ " available:" + QString::number(streamStats._ringBufferFramesAvailable)
|
||||
+ " starves:" + QString::number(streamStats._ringBufferStarveCount)
|
||||
+ " not mixed:" + QString::number(streamStats._ringBufferConsecutiveNotMixedCount)
|
||||
+ " overflows:" + QString::number(streamStats._ringBufferOverflowCount)
|
||||
+ " silents dropped:" + QString::number(streamStats._ringBufferSilentFramesDropped)
|
||||
+ " lost %:" + QString::number(streamStats._packetStreamStats.getLostRate(), 'g', 2)
|
||||
+ " lost % 30s:" + QString::number(streamStats._packetStreamWindowStats.getLostRate(), 'g', 2)
|
||||
+ " lost %:" + QString::number(streamStats._packetStreamStats.getLostRate(), 'f', 2)
|
||||
+ " lost % 30s:" + QString::number(streamStats._packetStreamWindowStats.getLostRate(), 'f', 2)
|
||||
+ " min gap:" + QString::number(streamStats._timeGapMin)
|
||||
+ " max gap:" + QString::number(streamStats._timeGapMax)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'g', 2)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'f', 2)
|
||||
+ " min 30s gap:" + QString::number(streamStats._timeGapWindowMin)
|
||||
+ " max 30s gap:" + QString::number(streamStats._timeGapWindowMax)
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'g', 2);
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'f', 2);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "InterfaceConfig.h"
|
||||
#include "Menu.h"
|
||||
#include "Util.h"
|
||||
#include "SequenceNumberStats.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -341,8 +342,6 @@ void Stats::display(
|
|||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
drawText(horizontalOffset, verticalOffset, scale, rotation, font, streamStatsFormatLabelString4, color);
|
||||
|
||||
float packetLossRate, packetLossRate30s;
|
||||
|
||||
char downstreamLabelString[] = " Downstream:";
|
||||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
drawText(horizontalOffset, verticalOffset, scale, rotation, font, downstreamLabelString, color);
|
||||
|
@ -351,9 +350,8 @@ void Stats::display(
|
|||
|
||||
AudioStreamStats downstreamAudioStreamStats = audio->getDownstreamAudioStreamStats();
|
||||
|
||||
audio->calculatePacketLossRate(audio->getIncomingStreamPacketStatsHistory(), packetLossRate, packetLossRate30s);
|
||||
|
||||
sprintf(downstreamAudioStatsString, " mix: %.1f%%/%.1f%%, %u/?/%u", packetLossRate*100.0f, packetLossRate30s*100.0f,
|
||||
sprintf(downstreamAudioStatsString, " mix: %.1f%%/%.1f%%, %u/?/%u", downstreamAudioStreamStats._packetStreamStats.getLostRate()*100.0f,
|
||||
downstreamAudioStreamStats._packetStreamWindowStats.getLostRate() * 100.0f,
|
||||
downstreamAudioStreamStats._ringBufferFramesAvailable, downstreamAudioStreamStats._ringBufferDesiredJitterBufferFrames);
|
||||
|
||||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
|
@ -381,10 +379,9 @@ void Stats::display(
|
|||
char upstreamAudioStatsString[30];
|
||||
|
||||
const AudioStreamStats& audioMixerAvatarAudioStreamStats = audio->getAudioMixerAvatarStreamAudioStats();
|
||||
|
||||
audio->calculatePacketLossRate(audio->getAudioMixerAvatarStreamPacketStatsHistory(), packetLossRate, packetLossRate30s);
|
||||
|
||||
sprintf(upstreamAudioStatsString, " mic: %.1f%%/%.1f%%, %u/%u/%u", packetLossRate*100.0f, packetLossRate30s*100.0f,
|
||||
sprintf(upstreamAudioStatsString, " mic: %.1f%%/%.1f%%, %u/%u/%u", audioMixerAvatarAudioStreamStats._packetStreamStats.getLostRate()*100.0f,
|
||||
audioMixerAvatarAudioStreamStats._packetStreamWindowStats.getLostRate() * 100.0f,
|
||||
audioMixerAvatarAudioStreamStats._ringBufferFramesAvailable, audioMixerAvatarAudioStreamStats._ringBufferCurrentJitterBufferFrames,
|
||||
audioMixerAvatarAudioStreamStats._ringBufferDesiredJitterBufferFrames);
|
||||
|
||||
|
@ -405,15 +402,10 @@ void Stats::display(
|
|||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
drawText(horizontalOffset, verticalOffset, scale, rotation, font, upstreamAudioStatsString, color);
|
||||
|
||||
QHash<QUuid, RingBufferHistory<PacketStreamStats> > audioMixerInjectedStreamPacketStatsHistoryMap
|
||||
= audio->getAudioMixerInjectedStreamPacketStatsHistoryMap();
|
||||
|
||||
foreach(const AudioStreamStats& injectedStreamAudioStats, audioMixerInjectedStreamAudioStatsMap) {
|
||||
|
||||
audio->calculatePacketLossRate(audioMixerInjectedStreamPacketStatsHistoryMap[injectedStreamAudioStats._streamIdentifier],
|
||||
packetLossRate, packetLossRate30s);
|
||||
|
||||
sprintf(upstreamAudioStatsString, " inj: %.1f%%/%.1f%%, %u/%u/%u", packetLossRate*100.0f, packetLossRate30s*100.0f,
|
||||
sprintf(upstreamAudioStatsString, " inj: %.1f%%/%.1f%%, %u/%u/%u", injectedStreamAudioStats._packetStreamStats.getLostRate()*100.0f,
|
||||
injectedStreamAudioStats._packetStreamWindowStats.getLostRate() * 100.0f,
|
||||
injectedStreamAudioStats._ringBufferFramesAvailable, injectedStreamAudioStats._ringBufferCurrentJitterBufferFrames,
|
||||
injectedStreamAudioStats._ringBufferDesiredJitterBufferFrames);
|
||||
|
||||
|
|
Loading…
Reference in a new issue