updated Stats for new AudioStreamStats format

This commit is contained in:
wangyix 2014-07-10 17:03:53 -07:00
parent a7ef7647ed
commit 6c85caaa54
2 changed files with 21 additions and 29 deletions

View file

@ -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;

View file

@ -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);