mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 15:49:24 +02:00
add stats for skipped streams
This commit is contained in:
parent
dacf343e9a
commit
996e033dee
4 changed files with 21 additions and 4 deletions
|
@ -302,6 +302,9 @@ void AudioMixer::sendStatsPacket() {
|
||||||
mixStats["%_hrtf_mixes"] = percentageForMixStats(_stats.hrtfRenders);
|
mixStats["%_hrtf_mixes"] = percentageForMixStats(_stats.hrtfRenders);
|
||||||
mixStats["%_hrtf_silent_mixes"] = percentageForMixStats(_stats.hrtfSilentRenders);
|
mixStats["%_hrtf_silent_mixes"] = percentageForMixStats(_stats.hrtfSilentRenders);
|
||||||
mixStats["%_hrtf_throttle_mixes"] = percentageForMixStats(_stats.hrtfThrottleRenders);
|
mixStats["%_hrtf_throttle_mixes"] = percentageForMixStats(_stats.hrtfThrottleRenders);
|
||||||
|
mixStats["%_skipped_throttle_mixes"] = percentageForMixStats(_stats.skippedThrottle);
|
||||||
|
mixStats["%_skipped_silent_mixes"] = percentageForMixStats(_stats.skippedSilent);
|
||||||
|
mixStats["%_skipped_other_mixes"] = percentageForMixStats(_stats.skippedOther);
|
||||||
mixStats["%_manual_stereo_mixes"] = percentageForMixStats(_stats.manualStereoMixes);
|
mixStats["%_manual_stereo_mixes"] = percentageForMixStats(_stats.manualStereoMixes);
|
||||||
mixStats["%_manual_echo_mixes"] = percentageForMixStats(_stats.manualEchoMixes);
|
mixStats["%_manual_echo_mixes"] = percentageForMixStats(_stats.manualEchoMixes);
|
||||||
|
|
||||||
|
|
|
@ -347,6 +347,7 @@ void AudioMixerSlave::addStream(AudioMixerClientData::MixableStream& mixableStre
|
||||||
|
|
||||||
if (mixableStream.skippedStream) {
|
if (mixableStream.skippedStream) {
|
||||||
// any skipped stream gets no processing and no silent render - early return
|
// any skipped stream gets no processing and no silent render - early return
|
||||||
|
++stats.skippedOther;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,11 +358,13 @@ void AudioMixerSlave::addStream(AudioMixerClientData::MixableStream& mixableStre
|
||||||
// to reduce artifacts we still call the HRTF functor for every silent or throttled source
|
// to reduce artifacts we still call the HRTF functor for every silent or throttled source
|
||||||
// for the first frame where the source becomes throttled or silent
|
// for the first frame where the source becomes throttled or silent
|
||||||
// this ensures the correct tail from last mixed block and the correct spatialization of next first block
|
// this ensures the correct tail from last mixed block and the correct spatialization of next first block
|
||||||
if (throttle || mixableStream.skippedStream || streamToAdd->getLastPopOutputLoudness() == 0.0f) {
|
if (throttle || streamToAdd->getLastPopOutputLoudness() == 0.0f) {
|
||||||
if (mixableStream.completedSilentRender) {
|
if (mixableStream.completedSilentRender) {
|
||||||
|
|
||||||
if (throttle) {
|
if (streamToAdd->getLastPopOutputLoudness() == 0.0f) {
|
||||||
++stats.hrtfThrottleRenders;
|
++stats.skippedSilent;
|
||||||
|
} else {
|
||||||
|
++stats.skippedThrottle;
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -456,7 +459,7 @@ void AudioMixerSlave::addStream(AudioMixerClientData::MixableStream& mixableStre
|
||||||
|
|
||||||
streamPopOutput.readSamples(_bufferSamples, AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL);
|
streamPopOutput.readSamples(_bufferSamples, AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL);
|
||||||
|
|
||||||
if (streamToAdd->getLastPopOutputLoudness() == 0.0f || mixableStream.skippedStream) {
|
if (streamToAdd->getLastPopOutputLoudness() == 0.0f) {
|
||||||
// call renderSilent to reduce artifacts
|
// call renderSilent to reduce artifacts
|
||||||
mixableStream.hrtf->renderSilent(_bufferSamples, _mixSamples, HRTF_DATASET_INDEX, azimuth, distance, gain,
|
mixableStream.hrtf->renderSilent(_bufferSamples, _mixSamples, HRTF_DATASET_INDEX, azimuth, distance, gain,
|
||||||
AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL);
|
AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL);
|
||||||
|
|
|
@ -21,6 +21,9 @@ void AudioMixerStats::reset() {
|
||||||
hrtfThrottleRenders = 0;
|
hrtfThrottleRenders = 0;
|
||||||
manualStereoMixes = 0;
|
manualStereoMixes = 0;
|
||||||
manualEchoMixes = 0;
|
manualEchoMixes = 0;
|
||||||
|
skippedThrottle = 0;
|
||||||
|
skippedSilent = 0;
|
||||||
|
skippedOther = 0;
|
||||||
#ifdef HIFI_AUDIO_MIXER_DEBUG
|
#ifdef HIFI_AUDIO_MIXER_DEBUG
|
||||||
mixTime = 0;
|
mixTime = 0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,6 +39,10 @@ void AudioMixerStats::accumulate(const AudioMixerStats& otherStats) {
|
||||||
hrtfThrottleRenders += otherStats.hrtfThrottleRenders;
|
hrtfThrottleRenders += otherStats.hrtfThrottleRenders;
|
||||||
manualStereoMixes += otherStats.manualStereoMixes;
|
manualStereoMixes += otherStats.manualStereoMixes;
|
||||||
manualEchoMixes += otherStats.manualEchoMixes;
|
manualEchoMixes += otherStats.manualEchoMixes;
|
||||||
|
skippedThrottle += otherStats.skippedThrottle;
|
||||||
|
skippedSilent += otherStats.skippedSilent;
|
||||||
|
skippedOther += otherStats.skippedOther;
|
||||||
|
|
||||||
#ifdef HIFI_AUDIO_MIXER_DEBUG
|
#ifdef HIFI_AUDIO_MIXER_DEBUG
|
||||||
mixTime += otherStats.mixTime;
|
mixTime += otherStats.mixTime;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -30,6 +30,10 @@ struct AudioMixerStats {
|
||||||
int manualStereoMixes { 0 };
|
int manualStereoMixes { 0 };
|
||||||
int manualEchoMixes { 0 };
|
int manualEchoMixes { 0 };
|
||||||
|
|
||||||
|
int skippedThrottle { 0 };
|
||||||
|
int skippedSilent { 0 };
|
||||||
|
int skippedOther { 0 };
|
||||||
|
|
||||||
#ifdef HIFI_AUDIO_MIXER_DEBUG
|
#ifdef HIFI_AUDIO_MIXER_DEBUG
|
||||||
uint64_t mixTime { 0 };
|
uint64_t mixTime { 0 };
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue