diff --git a/src/media/audio/audiolayer.cpp b/src/media/audio/audiolayer.cpp index ac7e4605e859ffa260e590b5b2c88b89edf96503..5a453a61c440dad230848ea041f7df8e903bb284 100644 --- a/src/media/audio/audiolayer.cpp +++ b/src/media/audio/audiolayer.cpp @@ -209,8 +209,8 @@ AudioLayer::createAudioProcessor() audioProcessor.reset(new WebRTCAudioProcessor(formatForProcessor, frame_size)); #else JAMI_ERR("[audiolayer] audioProcessor preference is webrtc, but library not linked! " - "using NullAudioProcessor instead"); - audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); + "using null AudioProcessor instead"); + audioProcessor.reset(); #endif } else if (pref_.getAudioProcessor() == "speex") { #if HAVE_SPEEXDSP @@ -218,27 +218,29 @@ AudioLayer::createAudioProcessor() audioProcessor.reset(new SpeexAudioProcessor(formatForProcessor, frame_size)); #else JAMI_ERR("[audiolayer] audioProcessor preference is speex, but library not linked! " - "using NullAudioProcessor instead"); - audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); + "using null AudioProcessor instead"); + audioProcessor.reset(); #endif } else if (pref_.getAudioProcessor() == "null") { - JAMI_WARN("[audiolayer] using NullAudioProcessor"); - audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); + JAMI_WARN("[audiolayer] using null AudioProcessor"); + audioProcessor.reset(); } else { - JAMI_ERR("[audiolayer] audioProcessor preference not recognized, using NullAudioProcessor " + JAMI_ERR("[audiolayer] audioProcessor preference not recognized, using null AudioProcessor " "instead"); - audioProcessor.reset(new NullAudioProcessor(formatForProcessor, frame_size)); + audioProcessor.reset(); } - audioProcessor->enableNoiseSuppression( - shouldUseAudioProcessorNoiseSuppression(hasNativeNS_, pref_.getNoiseReduce())); + if (audioProcessor) { + audioProcessor->enableNoiseSuppression( + shouldUseAudioProcessorNoiseSuppression(hasNativeNS_, pref_.getNoiseReduce())); - audioProcessor->enableAutomaticGainControl(pref_.isAGCEnabled()); + audioProcessor->enableAutomaticGainControl(pref_.isAGCEnabled()); - audioProcessor->enableEchoCancel( - shouldUseAudioProcessorEchoCancel(hasNativeAEC_, pref_.getEchoCanceller())); + audioProcessor->enableEchoCancel( + shouldUseAudioProcessorEchoCancel(hasNativeAEC_, pref_.getEchoCanceller())); - audioProcessor->enableVoiceActivityDetection(pref_.getVadEnabled()); + audioProcessor->enableVoiceActivityDetection(pref_.getVadEnabled()); + } } // must acquire lock beforehand @@ -351,7 +353,6 @@ AudioLayer::putRecorded(std::shared_ptr<AudioFrame>&& frame) while (auto rec = audioProcessor->getProcessed()) { mainRingBuffer_->put(std::move(rec)); } - } else { mainRingBuffer_->put(std::move(frame)); }