Skip to content
Snippets Groups Projects
Commit 0c8caae8 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

audiolayer: use null AudioProcessor instead of NullAudioProcessor

Avoids the audio thread processing overhead and memory overhead of the
AudioProcessor, since even the NullAudioProcessor uses queues of frames
and a dequeue mechanism.

Change-Id: I4a76b2f32d9a281519b5118c3be7676f730deb26
parent 348b260e
No related branches found
No related tags found
No related merge requests found
...@@ -209,8 +209,8 @@ AudioLayer::createAudioProcessor() ...@@ -209,8 +209,8 @@ AudioLayer::createAudioProcessor()
audioProcessor.reset(new WebRTCAudioProcessor(formatForProcessor, frame_size)); audioProcessor.reset(new WebRTCAudioProcessor(formatForProcessor, frame_size));
#else #else
JAMI_ERR("[audiolayer] audioProcessor preference is webrtc, but library not linked! " JAMI_ERR("[audiolayer] audioProcessor preference is webrtc, but library not linked! "
"using NullAudioProcessor instead"); "using null AudioProcessor instead");
audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); audioProcessor.reset();
#endif #endif
} else if (pref_.getAudioProcessor() == "speex") { } else if (pref_.getAudioProcessor() == "speex") {
#if HAVE_SPEEXDSP #if HAVE_SPEEXDSP
...@@ -218,18 +218,19 @@ AudioLayer::createAudioProcessor() ...@@ -218,18 +218,19 @@ AudioLayer::createAudioProcessor()
audioProcessor.reset(new SpeexAudioProcessor(formatForProcessor, frame_size)); audioProcessor.reset(new SpeexAudioProcessor(formatForProcessor, frame_size));
#else #else
JAMI_ERR("[audiolayer] audioProcessor preference is speex, but library not linked! " JAMI_ERR("[audiolayer] audioProcessor preference is speex, but library not linked! "
"using NullAudioProcessor instead"); "using null AudioProcessor instead");
audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); audioProcessor.reset();
#endif #endif
} else if (pref_.getAudioProcessor() == "null") { } else if (pref_.getAudioProcessor() == "null") {
JAMI_WARN("[audiolayer] using NullAudioProcessor"); JAMI_WARN("[audiolayer] using null AudioProcessor");
audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); audioProcessor.reset();
} else { } else {
JAMI_ERR("[audiolayer] audioProcessor preference not recognized, using NullAudioProcessor " JAMI_ERR("[audiolayer] audioProcessor preference not recognized, using null AudioProcessor "
"instead"); "instead");
audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); audioProcessor.reset();
} }
if (audioProcessor) {
audioProcessor->enableNoiseSuppression( audioProcessor->enableNoiseSuppression(
shouldUseAudioProcessorNoiseSuppression(hasNativeNS_, pref_.getNoiseReduce())); shouldUseAudioProcessorNoiseSuppression(hasNativeNS_, pref_.getNoiseReduce()));
...@@ -240,6 +241,7 @@ AudioLayer::createAudioProcessor() ...@@ -240,6 +241,7 @@ AudioLayer::createAudioProcessor()
audioProcessor->enableVoiceActivityDetection(pref_.getVadEnabled()); audioProcessor->enableVoiceActivityDetection(pref_.getVadEnabled());
} }
}
// must acquire lock beforehand // must acquire lock beforehand
void void
...@@ -351,7 +353,6 @@ AudioLayer::putRecorded(std::shared_ptr<AudioFrame>&& frame) ...@@ -351,7 +353,6 @@ AudioLayer::putRecorded(std::shared_ptr<AudioFrame>&& frame)
while (auto rec = audioProcessor->getProcessed()) { while (auto rec = audioProcessor->getProcessed()) {
mainRingBuffer_->put(std::move(rec)); mainRingBuffer_->put(std::move(rec));
} }
} else { } else {
mainRingBuffer_->put(std::move(frame)); mainRingBuffer_->put(std::move(frame));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment