|
Ring Daemon
|
#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_ |
| std::unique_ptr< Resampler > | inputResampler_ |
| unsigned int | minimumConsequtiveDurationMs {200} |
| std::unique_ptr< Resampler > | outputResampler_ |
| AudioFrameResizer | playbackQueue_ |
| std::atomic_bool | playbackStarted_ |
| AudioFrameResizer | recordQueue_ |
| std::atomic_bool | recordStarted_ |
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 169 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 55 of file audio_processor.h.
References jami::emitSignal(), playbackQueue_, playbackStarted_, and recordStarted_.

|
inlinevirtual |
Definition at line 48 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 119 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 111 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
Definition at line 102 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
Definition at line 105 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
|
protected |
Definition at line 97 of file audio_processor.h.
Referenced by jami::WebRTCAudioProcessor::getProcessed(), jami::SpeexAudioProcessor::SpeexAudioProcessor(), and jami::WebRTCAudioProcessor::WebRTCAudioProcessor().
Definition at line 99 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity(), jami::NullAudioProcessor::NullAudioProcessor(), jami::SpeexAudioProcessor::SpeexAudioProcessor(), and jami::WebRTCAudioProcessor::WebRTCAudioProcessor().
Definition at line 98 of file audio_processor.h.
Referenced by tidyQueues(), and jami::WebRTCAudioProcessor::WebRTCAudioProcessor().
|
protected |
Definition at line 93 of file audio_processor.h.
Definition at line 108 of file audio_processor.h.
Referenced by getStabilizedVoiceActivity().
|
protected |
Definition at line 94 of file audio_processor.h.
|
protected |
Definition at line 91 of file audio_processor.h.
Referenced by jami::NullAudioProcessor::getProcessed(), jami::SpeexAudioProcessor::getProcessed(), jami::WebRTCAudioProcessor::getProcessed(), putPlayback(), and tidyQueues().
|
protected |
Definition at line 95 of file audio_processor.h.
Referenced by putPlayback(), and putRecorded().
|
protected |
Definition at line 92 of file audio_processor.h.
Referenced by jami::NullAudioProcessor::getProcessed(), jami::SpeexAudioProcessor::getProcessed(), jami::WebRTCAudioProcessor::getProcessed(), putRecorded(), and tidyQueues().
|
protected |
Definition at line 96 of file audio_processor.h.
Referenced by putPlayback(), and putRecorded().