mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 13:38:02 +02:00
stats working
This commit is contained in:
parent
446c888242
commit
0007104b6a
2 changed files with 17 additions and 10 deletions
|
@ -553,6 +553,7 @@ void AudioMixer::run() {
|
||||||
sendAudioStreamStats = true;
|
sendAudioStreamStats = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool streamStatsPrinted = false;
|
||||||
foreach (const SharedNodePointer& node, nodeList->getNodeHash()) {
|
foreach (const SharedNodePointer& node, nodeList->getNodeHash()) {
|
||||||
if (node->getLinkedData()) {
|
if (node->getLinkedData()) {
|
||||||
AudioMixerClientData* nodeData = (AudioMixerClientData*)node->getLinkedData();
|
AudioMixerClientData* nodeData = (AudioMixerClientData*)node->getLinkedData();
|
||||||
|
@ -587,15 +588,21 @@ void AudioMixer::run() {
|
||||||
// send an audio stream stats packet if it's time
|
// send an audio stream stats packet if it's time
|
||||||
if (sendAudioStreamStats) {
|
if (sendAudioStreamStats) {
|
||||||
nodeData->sendAudioStreamStatsPackets(node);
|
nodeData->sendAudioStreamStatsPackets(node);
|
||||||
|
|
||||||
printf("\nStats for agent %s\n:", node->getUUID().toString().toLatin1().data());
|
if (_printStreamStats) {
|
||||||
nodeData->printUpstreamDownstreamStats();
|
printf("\nStats for agent %s:\n", node->getUUID().toString().toLatin1().data());
|
||||||
|
nodeData->printUpstreamDownstreamStats();
|
||||||
|
streamStatsPrinted = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
++_sumListeners;
|
++_sumListeners;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (streamStatsPrinted) {
|
||||||
|
printf("\n----------------------------------------------------------------\n");
|
||||||
|
}
|
||||||
|
|
||||||
++_numStatFrames;
|
++_numStatFrames;
|
||||||
|
|
||||||
|
|
|
@ -268,40 +268,40 @@ QString AudioMixerClientData::getAudioStreamStatsString() const {
|
||||||
void AudioMixerClientData::printUpstreamDownstreamStats() const {
|
void AudioMixerClientData::printUpstreamDownstreamStats() const {
|
||||||
// print the upstream (mic stream) stats if the mic stream exists
|
// print the upstream (mic stream) stats if the mic stream exists
|
||||||
if (_audioStreams.contains(QUuid())) {
|
if (_audioStreams.contains(QUuid())) {
|
||||||
printf(" Upstream:\n");
|
printf("Upstream:\n");
|
||||||
printAudioStreamStats(_audioStreams.value(QUuid())->getAudioStreamStats());
|
printAudioStreamStats(_audioStreams.value(QUuid())->getAudioStreamStats());
|
||||||
}
|
}
|
||||||
// print the downstream stats if they contain valid info
|
// print the downstream stats if they contain valid info
|
||||||
if (_downstreamAudioStreamStats._packetStreamStats._received > 0) {
|
if (_downstreamAudioStreamStats._packetStreamStats._received > 0) {
|
||||||
printf(" Downstream:\n");
|
printf("Downstream:\n");
|
||||||
printAudioStreamStats(_downstreamAudioStreamStats);
|
printAudioStreamStats(_downstreamAudioStreamStats);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioMixerClientData::printAudioStreamStats(const AudioStreamStats& streamStats) const {
|
void AudioMixerClientData::printAudioStreamStats(const AudioStreamStats& streamStats) const {
|
||||||
printf(" Packet loss | overall: %5.2f%% (%d lost), last_30s: %5.2f%% (%d lost)",
|
printf(" Packet loss | overall: %5.2f%% (%d lost), last_30s: %5.2f%% (%d lost)\n",
|
||||||
streamStats._packetStreamStats.getLostRate() * 100.0f,
|
streamStats._packetStreamStats.getLostRate() * 100.0f,
|
||||||
streamStats._packetStreamStats._lost,
|
streamStats._packetStreamStats._lost,
|
||||||
streamStats._packetStreamWindowStats.getLostRate() * 100.0f,
|
streamStats._packetStreamWindowStats.getLostRate() * 100.0f,
|
||||||
streamStats._packetStreamWindowStats._lost);
|
streamStats._packetStreamWindowStats._lost);
|
||||||
|
|
||||||
printf(" Ringbuffer frames | desired: %u, avg_available(10s): %u, available: %u",
|
printf(" Ringbuffer frames | desired: %u, avg_available(10s): %u, available: %u\n",
|
||||||
streamStats._desiredJitterBufferFrames,
|
streamStats._desiredJitterBufferFrames,
|
||||||
streamStats._framesAvailableAverage,
|
streamStats._framesAvailableAverage,
|
||||||
streamStats._framesAvailable);
|
streamStats._framesAvailable);
|
||||||
|
|
||||||
printf(" Ringbuffer stats | starves: %u, prev_starve_lasted: %u, frames_dropped: %u, overflows: %u",
|
printf(" Ringbuffer stats | starves: %u, prev_starve_lasted: %u, frames_dropped: %u, overflows: %u\n",
|
||||||
streamStats._starveCount,
|
streamStats._starveCount,
|
||||||
streamStats._consecutiveNotMixedCount,
|
streamStats._consecutiveNotMixedCount,
|
||||||
streamStats._framesDropped,
|
streamStats._framesDropped,
|
||||||
streamStats._overflowCount);
|
streamStats._overflowCount);
|
||||||
|
|
||||||
printf(" Inter-packet timegaps (overall) | min: %9s, max: %9s, avg: %9s",
|
printf(" Inter-packet timegaps (overall) | min: %9s, max: %9s, avg: %9s\n",
|
||||||
formatUsecTime(streamStats._timeGapMin).toLatin1().data(),
|
formatUsecTime(streamStats._timeGapMin).toLatin1().data(),
|
||||||
formatUsecTime(streamStats._timeGapMax).toLatin1().data(),
|
formatUsecTime(streamStats._timeGapMax).toLatin1().data(),
|
||||||
formatUsecTime(streamStats._timeGapAverage).toLatin1().data());
|
formatUsecTime(streamStats._timeGapAverage).toLatin1().data());
|
||||||
|
|
||||||
printf(" Inter-packet timegaps (last 30s) | min: %9s, max: %9s, avg: %9s",
|
printf(" Inter-packet timegaps (last 30s) | min: %9s, max: %9s, avg: %9s\n",
|
||||||
formatUsecTime(streamStats._timeGapWindowMin).toLatin1().data(),
|
formatUsecTime(streamStats._timeGapWindowMin).toLatin1().data(),
|
||||||
formatUsecTime(streamStats._timeGapWindowMax).toLatin1().data(),
|
formatUsecTime(streamStats._timeGapWindowMax).toLatin1().data(),
|
||||||
formatUsecTime(streamStats._timeGapWindowAverage).toLatin1().data());
|
formatUsecTime(streamStats._timeGapWindowAverage).toLatin1().data());
|
||||||
|
|
Loading…
Reference in a new issue