mirror of
https://github.com/lubosz/overte.git
synced 2025-04-23 01:04:06 +02:00
tidied up code
This commit is contained in:
parent
7fcf149f70
commit
0d83b9a6f6
10 changed files with 41 additions and 54 deletions
|
@ -176,9 +176,9 @@ AudioStreamStats AudioMixerClientData::getAudioStreamStatsOfStream(const Positio
|
|||
streamStats._timeGapMin = timeGapStats.getMin();
|
||||
streamStats._timeGapMax = timeGapStats.getMax();
|
||||
streamStats._timeGapAverage = timeGapStats.getAverage();
|
||||
streamStats._timeGapMovingMin = timeGapStats.getWindowMin();
|
||||
streamStats._timeGapMovingMax = timeGapStats.getWindowMax();
|
||||
streamStats._timeGapMovingAverage = timeGapStats.getWindowAverage();
|
||||
streamStats._timeGapWindowMin = timeGapStats.getWindowMin();
|
||||
streamStats._timeGapWindowMax = timeGapStats.getWindowMax();
|
||||
streamStats._timeGapWindowAverage = timeGapStats.getWindowAverage();
|
||||
|
||||
streamStats._ringBufferFramesAvailable = ringBuffer->framesAvailable();
|
||||
streamStats._ringBufferCurrentJitterBufferFrames = ringBuffer->getCurrentJitterBufferFrames();
|
||||
|
@ -267,9 +267,9 @@ QString AudioMixerClientData::getAudioStreamStatsString() const {
|
|||
+ " min gap:" + QString::number(streamStats._timeGapMin)
|
||||
+ " max gap:" + QString::number(streamStats._timeGapMax)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'g', 2)
|
||||
+ " min 30s gap:" + QString::number(streamStats._timeGapMovingMin)
|
||||
+ " max 30s gap:" + QString::number(streamStats._timeGapMovingMax)
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapMovingAverage, 'g', 2);
|
||||
+ " min 30s gap:" + QString::number(streamStats._timeGapWindowMin)
|
||||
+ " max 30s gap:" + QString::number(streamStats._timeGapWindowMax)
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'g', 2);
|
||||
} else {
|
||||
result = "mic unknown";
|
||||
}
|
||||
|
@ -290,9 +290,9 @@ QString AudioMixerClientData::getAudioStreamStatsString() const {
|
|||
+ " min gap:" + QString::number(streamStats._timeGapMin)
|
||||
+ " max gap:" + QString::number(streamStats._timeGapMax)
|
||||
+ " avg gap:" + QString::number(streamStats._timeGapAverage, 'g', 2)
|
||||
+ " min 30s gap:" + QString::number(streamStats._timeGapMovingMin)
|
||||
+ " max 30s gap:" + QString::number(streamStats._timeGapMovingMax)
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapMovingAverage, 'g', 2);
|
||||
+ " min 30s gap:" + QString::number(streamStats._timeGapWindowMin)
|
||||
+ " max 30s gap:" + QString::number(streamStats._timeGapWindowMax)
|
||||
+ " avg 30s gap:" + QString::number(streamStats._timeGapWindowAverage, 'g', 2);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
|
|
@ -19,7 +19,7 @@ AvatarAudioRingBuffer::AvatarAudioRingBuffer(bool isStereo, bool dynamicJitterBu
|
|||
}
|
||||
|
||||
int AvatarAudioRingBuffer::parseData(const QByteArray& packet) {
|
||||
frameReceived();
|
||||
timeGapStatsFrameReceived();
|
||||
updateDesiredJitterBufferFrames();
|
||||
|
||||
_shouldLoopbackForNode = (packetTypeForPacket(packet) == PacketTypeMicrophoneAudioWithEcho);
|
||||
|
|
|
@ -50,6 +50,7 @@ static const int NUMBER_OF_NOISE_SAMPLE_FRAMES = 300;
|
|||
|
||||
static const int AUDIO_STREAM_STATS_HISTORY_SIZE = 30;
|
||||
|
||||
// audio frames time gap stats (min/max/avg) for last ~30 seconds are recalculated every ~1 second
|
||||
const int TIME_GAPS_STATS_INTERVAL_SAMPLES = USECS_PER_SECOND / BUFFER_SEND_INTERVAL_USECS;
|
||||
const int TIME_GAP_STATS_WINDOW_INTERVALS = 30;
|
||||
|
||||
|
@ -776,8 +777,8 @@ void Audio::parseAudioStreamStatsPacket(const QByteArray& packet) {
|
|||
}
|
||||
}
|
||||
|
||||
// when an audio stream stats packet is received, also record the current packets received and lost
|
||||
// in the packet loss stats history
|
||||
// when an audio stream stats packet is received, also record the downstream packets stats in the history
|
||||
// for calculating packet loss rates
|
||||
_incomingStreamPacketStatsHistory.insert(_incomingMixedAudioSequenceNumberStats.getStats());
|
||||
}
|
||||
|
||||
|
|
|
@ -341,22 +341,12 @@ 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);
|
||||
|
||||
/* const SequenceNumberStats& downstreamAudioSequenceNumberStats = audio->getIncomingMixedAudioSequenceNumberStats();
|
||||
|
||||
sprintf(downstreamAudioStatsString, " mix: %d/%d/%d, %d", downstreamAudioSequenceNumberStats.getNumEarly(),
|
||||
downstreamAudioSequenceNumberStats.getNumLate(), downstreamAudioSequenceNumberStats.getNumLost(),
|
||||
audio->getJitterBufferSamples() / NETWORK_BUFFER_LENGTH_SAMPLES_STEREO);
|
||||
|
||||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
drawText(horizontalOffset, verticalOffset, scale, rotation, font, downstreamAudioStatsString, color);*/
|
||||
|
||||
float packetLossRate, packetLossRate30s;
|
||||
|
||||
char downstreamAudioStatsString[30];
|
||||
|
||||
audio->calculatePacketLossRate(audio->getIncomingStreamPacketStatsHistory(), packetLossRate, packetLossRate30s);
|
||||
|
@ -406,8 +396,8 @@ void Stats::display(
|
|||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
drawText(horizontalOffset, verticalOffset, scale, rotation, font, upstreamAudioStatsString, color);
|
||||
|
||||
sprintf(upstreamAudioStatsString, " %llu/%llu/%.2f, %u/%u", audioMixerAvatarAudioStreamStats._timeGapMovingMin,
|
||||
audioMixerAvatarAudioStreamStats._timeGapMovingMax, audioMixerAvatarAudioStreamStats._timeGapMovingAverage,
|
||||
sprintf(upstreamAudioStatsString, " %llu/%llu/%.2f, %u/%u", audioMixerAvatarAudioStreamStats._timeGapWindowMin,
|
||||
audioMixerAvatarAudioStreamStats._timeGapWindowMax, audioMixerAvatarAudioStreamStats._timeGapWindowAverage,
|
||||
audioMixerAvatarAudioStreamStats._ringBufferConsecutiveNotMixedCount, audioMixerAvatarAudioStreamStats._ringBufferSilentFramesDropped);
|
||||
|
||||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
|
@ -435,8 +425,8 @@ void Stats::display(
|
|||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
drawText(horizontalOffset, verticalOffset, scale, rotation, font, upstreamAudioStatsString, color);
|
||||
|
||||
sprintf(upstreamAudioStatsString, " %llu/%llu/%.2f, %u/%u", injectedStreamAudioStats._timeGapMovingMin,
|
||||
injectedStreamAudioStats._timeGapMovingMax, injectedStreamAudioStats._timeGapMovingAverage,
|
||||
sprintf(upstreamAudioStatsString, " %llu/%llu/%.2f, %u/%u", injectedStreamAudioStats._timeGapWindowMin,
|
||||
injectedStreamAudioStats._timeGapWindowMax, injectedStreamAudioStats._timeGapWindowAverage,
|
||||
injectedStreamAudioStats._ringBufferConsecutiveNotMixedCount, injectedStreamAudioStats._ringBufferSilentFramesDropped);
|
||||
|
||||
verticalOffset += STATS_PELS_PER_LINE;
|
||||
|
|
|
@ -23,9 +23,9 @@ public:
|
|||
_timeGapMin(0),
|
||||
_timeGapMax(0),
|
||||
_timeGapAverage(0.0f),
|
||||
_timeGapMovingMin(0),
|
||||
_timeGapMovingMax(0),
|
||||
_timeGapMovingAverage(0.0f),
|
||||
_timeGapWindowMin(0),
|
||||
_timeGapWindowMax(0),
|
||||
_timeGapWindowAverage(0.0f),
|
||||
_ringBufferFramesAvailable(0),
|
||||
_ringBufferCurrentJitterBufferFrames(0),
|
||||
_ringBufferDesiredJitterBufferFrames(0),
|
||||
|
@ -42,9 +42,9 @@ public:
|
|||
quint64 _timeGapMin;
|
||||
quint64 _timeGapMax;
|
||||
float _timeGapAverage;
|
||||
quint64 _timeGapMovingMin;
|
||||
quint64 _timeGapMovingMax;
|
||||
float _timeGapMovingAverage;
|
||||
quint64 _timeGapWindowMin;
|
||||
quint64 _timeGapWindowMax;
|
||||
float _timeGapWindowAverage;
|
||||
|
||||
quint32 _ringBufferFramesAvailable;
|
||||
quint16 _ringBufferCurrentJitterBufferFrames;
|
||||
|
|
|
@ -31,7 +31,7 @@ InjectedAudioRingBuffer::InjectedAudioRingBuffer(const QUuid& streamIdentifier,
|
|||
const uchar MAX_INJECTOR_VOLUME = 255;
|
||||
|
||||
int InjectedAudioRingBuffer::parseData(const QByteArray& packet) {
|
||||
frameReceived();
|
||||
timeGapStatsFrameReceived();
|
||||
updateDesiredJitterBufferFrames();
|
||||
|
||||
// setup a data stream to read from this packet
|
||||
|
|
|
@ -198,7 +198,7 @@ int PositionalAudioRingBuffer::getCalculatedDesiredJitterBufferFrames() const {
|
|||
return calculatedDesiredJitterBufferFrames;
|
||||
}
|
||||
|
||||
void PositionalAudioRingBuffer::frameReceived() {
|
||||
void PositionalAudioRingBuffer::timeGapStatsFrameReceived() {
|
||||
quint64 now = usecTimestampNow();
|
||||
if (_lastFrameReceivedTime != 0) {
|
||||
quint64 gap = now - _lastFrameReceivedTime;
|
||||
|
|
|
@ -80,7 +80,7 @@ protected:
|
|||
PositionalAudioRingBuffer(const PositionalAudioRingBuffer&);
|
||||
PositionalAudioRingBuffer& operator= (const PositionalAudioRingBuffer&);
|
||||
|
||||
void frameReceived();
|
||||
void timeGapStatsFrameReceived();
|
||||
void updateDesiredJitterBufferFrames();
|
||||
|
||||
PositionalAudioRingBuffer::Type _type;
|
||||
|
|
|
@ -86,7 +86,6 @@ public:
|
|||
}
|
||||
|
||||
void update(T newSample) {
|
||||
|
||||
// update overall stats
|
||||
_overallStats.updateWithSample(newSample, _samplesCollected);
|
||||
|
||||
|
@ -115,7 +114,6 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
bool getNewStatsAvailableFlag() const { return _newStatsAvailable; }
|
||||
void clearNewStatsAvailableFlag() { _newStatsAvailable = false; }
|
||||
|
||||
|
@ -126,8 +124,6 @@ public:
|
|||
T getWindowMax() const { return _windowStats._max; }
|
||||
double getWindowAverage() const { return _windowStats._average; }
|
||||
|
||||
|
||||
|
||||
private:
|
||||
int _intervalLength;
|
||||
int _windowIntervals;
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
RingBufferHistory(int capacity = 10)
|
||||
: _size(capacity + 1),
|
||||
_capacity(capacity),
|
||||
_newestEntryAt(0),
|
||||
_newestEntryAtIndex(0),
|
||||
_numEntries(0)
|
||||
{
|
||||
_buffer = new T[_size];
|
||||
|
@ -32,7 +32,7 @@ public:
|
|||
RingBufferHistory(const RingBufferHistory& other)
|
||||
: _size(other._size),
|
||||
_capacity(other._capacity),
|
||||
_newestEntryAt(other._newestEntryAt),
|
||||
_newestEntryAtIndex(other._newestEntryAtIndex),
|
||||
_numEntries(other._numEntries)
|
||||
{
|
||||
_buffer = new T[_size];
|
||||
|
@ -42,7 +42,7 @@ public:
|
|||
RingBufferHistory& operator= (const RingBufferHistory& rhs) {
|
||||
_size = rhs._size;
|
||||
_capacity = rhs._capacity;
|
||||
_newestEntryAt = rhs._newestEntryAt;
|
||||
_newestEntryAtIndex = rhs._newestEntryAtIndex;
|
||||
_numEntries = rhs._numEntries;
|
||||
delete[] _buffer;
|
||||
_buffer = new T[_size];
|
||||
|
@ -60,10 +60,10 @@ public:
|
|||
|
||||
void insert(const T& entry) {
|
||||
// increment newest entry index cyclically
|
||||
_newestEntryAt = (_newestEntryAt == _size - 1) ? 0 : _newestEntryAt + 1;
|
||||
_newestEntryAtIndex = (_newestEntryAtIndex == _size - 1) ? 0 : _newestEntryAtIndex + 1;
|
||||
|
||||
// insert new entry
|
||||
_buffer[_newestEntryAt] = entry;
|
||||
_buffer[_newestEntryAtIndex] = entry;
|
||||
if (_numEntries < _capacity) {
|
||||
_numEntries++;
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ public:
|
|||
if (!(entryAge >= 0 && entryAge < _numEntries)) {
|
||||
return NULL;
|
||||
}
|
||||
int entryAt = _newestEntryAt - entryAge;
|
||||
int entryAt = _newestEntryAtIndex - entryAge;
|
||||
if (entryAt < 0) {
|
||||
entryAt += _size;
|
||||
}
|
||||
|
@ -87,11 +87,11 @@ public:
|
|||
}
|
||||
|
||||
const T* getNewestEntry() const {
|
||||
return &_buffer[_newestEntryAt];
|
||||
return &_buffer[_newestEntryAtIndex];
|
||||
}
|
||||
|
||||
T* getNewestEntry() {
|
||||
return &_buffer[_newestEntryAt];
|
||||
return &_buffer[_newestEntryAtIndex];
|
||||
}
|
||||
|
||||
int getCapacity() const { return _capacity; }
|
||||
|
@ -101,7 +101,7 @@ private:
|
|||
T* _buffer;
|
||||
int _size;
|
||||
int _capacity;
|
||||
int _newestEntryAt;
|
||||
int _newestEntryAtIndex;
|
||||
int _numEntries;
|
||||
|
||||
|
||||
|
@ -133,14 +133,14 @@ public:
|
|||
T* _at;
|
||||
};
|
||||
|
||||
Iterator begin() { return Iterator(_buffer, _size, &_buffer[_newestEntryAt]); }
|
||||
Iterator begin() { return Iterator(_buffer, _size, &_buffer[_newestEntryAtIndex]); }
|
||||
|
||||
Iterator end() {
|
||||
int endAt = _newestEntryAt - _numEntries;
|
||||
if (endAt < 0) {
|
||||
endAt += _size;
|
||||
int endAtIndex = _newestEntryAtIndex - _numEntries;
|
||||
if (endAtIndex < 0) {
|
||||
endAtIndex += _size;
|
||||
}
|
||||
return Iterator(_buffer, _size, &_buffer[endAt]);
|
||||
return Iterator(_buffer, _size, &_buffer[endAtIndex]);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue