mirror of
https://github.com/overte-org/overte.git
synced 2025-08-13 01:36:15 +02:00
adding more stats
This commit is contained in:
parent
fda60cc8d5
commit
5c188ea81e
3 changed files with 16 additions and 0 deletions
|
@ -144,10 +144,12 @@ QString AudioMixerClientData::getJitterBufferStats() const {
|
||||||
AvatarAudioRingBuffer* avatarRingBuffer = getAvatarAudioRingBuffer();
|
AvatarAudioRingBuffer* avatarRingBuffer = getAvatarAudioRingBuffer();
|
||||||
if (avatarRingBuffer) {
|
if (avatarRingBuffer) {
|
||||||
int desiredJitterBuffer = avatarRingBuffer->getDesiredJitterBufferFrames();
|
int desiredJitterBuffer = avatarRingBuffer->getDesiredJitterBufferFrames();
|
||||||
|
int calculatedJitterBuffer = avatarRingBuffer->getCalculatedDesiredJitterBufferFrames();
|
||||||
int currentJitterBuffer = avatarRingBuffer->getCurrentJitterBufferFrames();
|
int currentJitterBuffer = avatarRingBuffer->getCurrentJitterBufferFrames();
|
||||||
int samplesAvailable = avatarRingBuffer->samplesAvailable();
|
int samplesAvailable = avatarRingBuffer->samplesAvailable();
|
||||||
int framesAvailable = (samplesAvailable / avatarRingBuffer->getSamplesPerFrame());
|
int framesAvailable = (samplesAvailable / avatarRingBuffer->getSamplesPerFrame());
|
||||||
result += "mic.desired:" + QString::number(desiredJitterBuffer)
|
result += "mic.desired:" + QString::number(desiredJitterBuffer)
|
||||||
|
+ " calculated:" + QString::number(calculatedJitterBuffer)
|
||||||
+ " current:" + QString::number(currentJitterBuffer)
|
+ " current:" + QString::number(currentJitterBuffer)
|
||||||
+ " available:" + QString::number(framesAvailable)
|
+ " available:" + QString::number(framesAvailable)
|
||||||
+ " samples:" + QString::number(samplesAvailable);
|
+ " samples:" + QString::number(samplesAvailable);
|
||||||
|
@ -158,10 +160,12 @@ QString AudioMixerClientData::getJitterBufferStats() const {
|
||||||
for (int i = 0; i < _ringBuffers.size(); i++) {
|
for (int i = 0; i < _ringBuffers.size(); i++) {
|
||||||
if (_ringBuffers[i]->getType() == PositionalAudioRingBuffer::Injector) {
|
if (_ringBuffers[i]->getType() == PositionalAudioRingBuffer::Injector) {
|
||||||
int desiredJitterBuffer = _ringBuffers[i]->getDesiredJitterBufferFrames();
|
int desiredJitterBuffer = _ringBuffers[i]->getDesiredJitterBufferFrames();
|
||||||
|
int calculatedJitterBuffer = _ringBuffers[i]->getCalculatedDesiredJitterBufferFrames();
|
||||||
int currentJitterBuffer = _ringBuffers[i]->getCurrentJitterBufferFrames();
|
int currentJitterBuffer = _ringBuffers[i]->getCurrentJitterBufferFrames();
|
||||||
int samplesAvailable = _ringBuffers[i]->samplesAvailable();
|
int samplesAvailable = _ringBuffers[i]->samplesAvailable();
|
||||||
int framesAvailable = (samplesAvailable / _ringBuffers[i]->getSamplesPerFrame());
|
int framesAvailable = (samplesAvailable / _ringBuffers[i]->getSamplesPerFrame());
|
||||||
result += "| injected["+QString::number(i)+"].desired:" + QString::number(desiredJitterBuffer)
|
result += "| injected["+QString::number(i)+"].desired:" + QString::number(desiredJitterBuffer)
|
||||||
|
+ " calculated:" + QString::number(calculatedJitterBuffer)
|
||||||
+ " current:" + QString::number(currentJitterBuffer)
|
+ " current:" + QString::number(currentJitterBuffer)
|
||||||
+ " available:" + QString::number(framesAvailable)
|
+ " available:" + QString::number(framesAvailable)
|
||||||
+ " samples:" + QString::number(samplesAvailable);
|
+ " samples:" + QString::number(samplesAvailable);
|
||||||
|
|
|
@ -233,6 +233,17 @@ bool PositionalAudioRingBuffer::shouldBeAddedToMix() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int PositionalAudioRingBuffer::getCalculatedDesiredJitterBufferFrames() const {
|
||||||
|
int calculatedDesiredJitterBufferFrames = 1;
|
||||||
|
const float USECS_PER_FRAME = NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL * USECS_PER_SECOND / (float)SAMPLE_RATE;
|
||||||
|
|
||||||
|
calculatedDesiredJitterBufferFrames = ceilf((float)_interframeTimeGapStats.peekWindowMaxGap() / USECS_PER_FRAME);
|
||||||
|
if (calculatedDesiredJitterBufferFrames < 1) {
|
||||||
|
calculatedDesiredJitterBufferFrames = 1;
|
||||||
|
}
|
||||||
|
return calculatedDesiredJitterBufferFrames;
|
||||||
|
}
|
||||||
|
|
||||||
void PositionalAudioRingBuffer::updateDesiredJitterBufferFrames() {
|
void PositionalAudioRingBuffer::updateDesiredJitterBufferFrames() {
|
||||||
if (_interframeTimeGapStats.hasNewWindowMaxGapAvailable()) {
|
if (_interframeTimeGapStats.hasNewWindowMaxGapAvailable()) {
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,7 @@ public:
|
||||||
|
|
||||||
int getSamplesPerFrame() const { return _isStereo ? NETWORK_BUFFER_LENGTH_SAMPLES_STEREO : NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL; }
|
int getSamplesPerFrame() const { return _isStereo ? NETWORK_BUFFER_LENGTH_SAMPLES_STEREO : NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL; }
|
||||||
|
|
||||||
|
int getCalculatedDesiredJitterBufferFrames() const; /// returns what we would calculate our desired as if asked
|
||||||
int getDesiredJitterBufferFrames() const { return _desiredJitterBufferFrames; }
|
int getDesiredJitterBufferFrames() const { return _desiredJitterBufferFrames; }
|
||||||
int getCurrentJitterBufferFrames() const { return _currentJitterBufferFrames; }
|
int getCurrentJitterBufferFrames() const { return _currentJitterBufferFrames; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue