Ring Daemon 16.0.0
|
#include <audio_processor.h>
Public Member Functions | |
AudioProcessor (AudioFormat format, unsigned frameSize) | |
virtual void | enableAutomaticGainControl (bool enabled)=0 |
Set the status of automatic gain control. | |
virtual void | enableEchoCancel (bool enabled)=0 |
Set the status of echo cancellation. | |
virtual void | enableNoiseSuppression (bool enabled)=0 |
Set the status of noise suppression includes de-reverb, de-noise, high pass filter, etc. | |
virtual void | enableVoiceActivityDetection (bool enabled)=0 |
Set the status of voice activity detection. | |
virtual std::shared_ptr< AudioFrame > | getProcessed ()=0 |
Process and return a single AudioFrame. | |
virtual void | putPlayback (const std::shared_ptr< AudioFrame > &buf) |
virtual void | putRecorded (std::shared_ptr< AudioFrame > &&buf) |
virtual | ~AudioProcessor ()=default |
Protected Member Functions | |
bool | getStabilizedVoiceActivity (bool voiceStatus) |
Stablilizes voice activity. | |
bool | tidyQueues () |
Helper method for audio processors, should be called at start of getProcessed() Pops frames from audio queues if there's overflow. | |
Protected Attributes | |
unsigned int | consecutiveActiveFrames {0} |
unsigned int | forceMinimumVoiceActivityMs {1000} |
unsigned int | forceVoiceActiveFramesLeft {0} |
AudioFormat | format_ |
unsigned int | frameDurationMs_ |
unsigned int | frameSize_ |
unsigned int | minimumConsequtiveDurationMs {200} |
AudioFrameResizer | playbackQueue_ |
std::atomic_bool | playbackStarted_ |
AudioFrameResizer | recordQueue_ |
std::atomic_bool | recordStarted_ |
std::unique_ptr< Resampler > | resampler_ |
Definition at line 31 of file audio_processor.h.
|
inline |
Definition at line 37 of file audio_processor.h.
|
virtualdefault |
Set the status of automatic gain control.
Implemented in jami::SpeexAudioProcessor, jami::WebRTCAudioProcessor, and jami::NullAudioProcessor.
Set the status of echo cancellation.
Implemented in jami::SpeexAudioProcessor, jami::WebRTCAudioProcessor, and jami::NullAudioProcessor.
Set the status of noise suppression includes de-reverb, de-noise, high pass filter, etc.
Implemented in jami::SpeexAudioProcessor, jami::WebRTCAudioProcessor, and jami::NullAudioProcessor.
Set the status of voice activity detection.
Implemented in jami::SpeexAudioProcessor, jami::WebRTCAudioProcessor, and jami::NullAudioProcessor.
|
pure virtual |
Process and return a single AudioFrame.
Implemented in jami::NullAudioProcessor, jami::SpeexAudioProcessor, and jami::WebRTCAudioProcessor.
Stablilizes voice activity.
voiceStatus | the voice status that was detected by the audio processor for the current frame |
Definition at line 146 of file audio_processor.h.
References consecutiveActiveFrames, jami::emitSignal(), forceMinimumVoiceActivityMs, forceVoiceActiveFramesLeft, frameDurationMs_, and minimumConsequtiveDurationMs.
Referenced by jami::SpeexAudioProcessor::getProcessed(), and jami::WebRTCAudioProcessor::getProcessed().
|
inlinevirtual |
Definition at line 54 of file audio_processor.h.
References jami::emitSignal(), playbackQueue_, playbackStarted_, and recordStarted_.
|
inlinevirtual |
Definition at line 47 of file audio_processor.h.
References jami::emitSignal(), playbackStarted_, recordQueue_, and recordStarted_.
|
inlineprotected |
Helper method for audio processors, should be called at start of getProcessed() Pops frames from audio queues if there's overflow.
Definition at line 117 of file audio_processor.h.
References jami::AudioFrameResizer::dequeue(), jami::emitSignal(), jami::AudioFrameResizer::frameSize(), frameSize_, JAMI_LOG, playbackQueue_, recordQueue_, and jami::AudioFrameResizer::samples().
Referenced by jami::NullAudioProcessor::getProcessed(), jami::SpeexAudioProcessor::getProcessed(), and jami::WebRTCAudioProcessor::getProcessed().
Definition at line 109 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
Definition at line 100 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
Definition at line 103 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
|
protected |
Definition at line 95 of file audio_processor.h.
Referenced by jami::WebRTCAudioProcessor::getProcessed(), jami::SpeexAudioProcessor::SpeexAudioProcessor(), and jami::WebRTCAudioProcessor::WebRTCAudioProcessor().
Definition at line 97 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity(), jami::NullAudioProcessor::NullAudioProcessor(), jami::SpeexAudioProcessor::SpeexAudioProcessor(), and jami::WebRTCAudioProcessor::WebRTCAudioProcessor().
Definition at line 96 of file audio_processor.h.
Referenced by tidyQueues(), and jami::WebRTCAudioProcessor::WebRTCAudioProcessor().
Definition at line 106 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
|
protected |
Definition at line 90 of file audio_processor.h.
Referenced by jami::NullAudioProcessor::getProcessed(), jami::SpeexAudioProcessor::getProcessed(), jami::WebRTCAudioProcessor::getProcessed(), putPlayback(), and tidyQueues().
|
protected |
Definition at line 93 of file audio_processor.h.
Referenced by putPlayback(), and putRecorded().
|
protected |
Definition at line 91 of file audio_processor.h.
Referenced by jami::NullAudioProcessor::getProcessed(), jami::SpeexAudioProcessor::getProcessed(), jami::WebRTCAudioProcessor::getProcessed(), putRecorded(), and tidyQueues().
|
protected |
Definition at line 94 of file audio_processor.h.
Referenced by putPlayback(), and putRecorded().
|
protected |
Definition at line 92 of file audio_processor.h.