int frameSize() const
Gets the number of samples per output frame.
int samples() const
Gets the numbers of samples available for reading.
std::shared_ptr< AudioFrame > dequeue()
Notifies owner of a new frame.
AudioProcessor(AudioFormat format, unsigned frameSize)
virtual void enableVoiceActivityDetection(bool enabled)=0
Set the status of voice activity detection.
unsigned int frameDurationMs_
AudioFrameResizer playbackQueue_
bool tidyQueues()
Helper method for audio processors, should be called at start of getProcessed() Pops frames from audi...
virtual void enableNoiseSuppression(bool enabled)=0
Set the status of noise suppression includes de-reverb, de-noise, high pass filter,...
std::unique_ptr< Resampler > resampler_
virtual void enableEchoCancel(bool enabled)=0
Set the status of echo cancellation.
unsigned int consecutiveActiveFrames
unsigned int minimumConsequtiveDurationMs
bool getStabilizedVoiceActivity(bool voiceStatus)
Stablilizes voice activity.
virtual void enableAutomaticGainControl(bool enabled)=0
Set the status of automatic gain control.
AudioFrameResizer recordQueue_
virtual std::shared_ptr< AudioFrame > getProcessed()=0
Process and return a single AudioFrame.
unsigned int forceVoiceActiveFramesLeft
virtual void putPlayback(const std::shared_ptr< AudioFrame > &buf)
virtual void putRecorded(std::shared_ptr< AudioFrame > &&buf)
std::atomic_bool playbackStarted_
unsigned int forceMinimumVoiceActivityMs
std::atomic_bool recordStarted_
virtual ~AudioProcessor()=default
Wrapper class for libswresample.
#define JAMI_LOG(formatstr,...)
void emitSignal(Args... args)
Simple macro to hide class' copy constructor and assignment operator.
#define NON_COPYABLE(ClassName)