Wave Arts VQE  1.00
Voice Quality Enhancement
Public Member Functions | Protected Attributes
AecLatCalObject Class Reference

Latency calibration host object. More...

#include <AecObjects.h>

Inheritance diagram for AecLatCalObject:
AecProcessor

List of all members.

Public Member Functions

 AecLatCalObject (AecLatCalParam *param, AecProcessor *aec)
 Constructor.
 ~AecLatCalObject ()
 destructor
void Process (float *refBuf, float *recBuf, int n)
 Process AEC samples.
void Reset (bool isHard)
 Reset AEC.
AecLatCalGetLatCal ()
 Get the embedded AecLatCal object.
bool GetLatency (int *pLatency)
 Get the measured latency, return T/F if valid.

Protected Attributes

AecLatCallatCal
 AecLatCal object.
AecProcessoraec
 AEC processor to run after latency measurement complete.
bool isComplete
 measurement was completed
int latency
 measured latency

Detailed Description

Latency calibration host object.

This measures latency, notifies the AEC processor, and then passes processing along to the AEC processor.


Constructor & Destructor Documentation

AecLatCalObject::AecLatCalObject ( AecLatCalParam param,
AecProcessor aec 
)

Constructor.

Parameters:
[in]paramlatency calibration parameters
[in]aecAEC processor object

Member Function Documentation

void AecLatCalObject::Process ( float *  refBuf,
float *  recBuf,
int  n 
) [virtual]

Process AEC samples.

Parameters:
[in]refBufreference (far) signal buffer
[in,out]recBufrecord (near) signal buffer, replaced
[in]nnumber of sample frames

The AEC algorithm is called with a matched pair of reference and record signal buffers which should have a constant latency relationship, provided the sample rates are synchronized. The AEC algorithm is responsible for compensating for the latency, usually by internally delaying the reference signal. See AecProcessor::SetLatency. If the sample rates are not synchronized then the latency relationship will drift. The AecInFifo will discard or repeat a record buffer when the drift exceeds a single buffer time. This is called a buffer overrun or buffer underrun.

The recBuf buffer is replaced by the "error signal", the echo cancelled result. Note the AEC algorithm already knows the frame size and numbers of input and output channels. Hence passing the number of sample frames via n is redundant.

Implements AecProcessor.

void AecLatCalObject::Reset ( bool  isHard) [virtual]

Reset AEC.

Parameters:
[in]isHardtrue if hard reset, else soft reset

A hard reset resets the AEC algorithm to initial conditions. A hard reset will also cause the latency to be measured if the AecLatCalObject is used. A soft reset should be called when a signal discontinuity is detected due to lack of buffer synchronization.

Implements AecProcessor.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines