#include <inttypes.h>#include <stdlib.h>#include "floating_fudge.h"#include <string.h>#include <stdio.h>#include "spandsp/telephony.h"#include "spandsp/logging.h"#include "spandsp/dc_restore.h"#include "spandsp/saturated.h"#include "spandsp/bit_operations.h"#include "spandsp/echo.h"Defines | |
| #define | NULL (void *) 0 |
| #define | MIN_TX_POWER_FOR_ADAPTION 64 |
| #define | MIN_RX_POWER_FOR_ADAPTION 64 |
| #define | DTD_HANGOVER 600 |
| #define | DC_LOG2BETA 3 |
Functions | |
| echo_can_state_t * | echo_can_create (int len, int adaption_mode) |
| void | echo_can_free (echo_can_state_t *ec) |
| void | echo_can_adaption_mode (echo_can_state_t *ec, int adaption_mode) |
| void | echo_can_flush (echo_can_state_t *ec) |
| void | echo_can_snapshot (echo_can_state_t *ec) |
| int16_t | echo_can_update (echo_can_state_t *ec, int16_t tx, int16_t rx) |
| int16_t | echo_can_hpf_tx (echo_can_state_t *ec, int16_t tx) |
| void echo_can_adaption_mode | ( | echo_can_state_t * | ec, | |
| int | adaption_mode | |||
| ) |
Set the adaption mode of a voice echo canceller context.
| ec | The echo canceller context. | |
| adaption_mode | The mode. |
References echo_can_state_t::adaption_mode.
| echo_can_state_t* echo_can_create | ( | int | len, | |
| int | adaption_mode | |||
| ) |
Create a voice echo canceller context.
| len | The length of the canceller, in samples. |
References echo_can_state_t::cng_level, echo_can_state_t::cond_met, echo_can_state_t::curr_pos, echo_can_adaption_mode(), echo_can_state_t::fir_state, echo_can_state_t::fir_state_bg, echo_can_state_t::fir_taps16, echo_can_state_t::Lbgn, echo_can_state_t::Lbgn_acc, echo_can_state_t::Lbgn_upper, echo_can_state_t::Lbgn_upper_acc, echo_can_state_t::Lclean, echo_can_state_t::Lclean_bg, echo_can_state_t::Lclean_bgacc, echo_can_state_t::Lcleanacc, echo_can_state_t::log2taps, echo_can_state_t::Lrx, echo_can_state_t::Lrxacc, echo_can_state_t::Ltx, echo_can_state_t::Ltxacc, echo_can_state_t::Pstates, echo_can_state_t::rx_hpf, echo_can_state_t::snapshot, echo_can_state_t::taps, and echo_can_state_t::tx_hpf.
| void echo_can_flush | ( | echo_can_state_t * | ec | ) |
Flush (reinitialise) a voice echo canceller context.
| ec | The echo canceller context. |
References echo_can_state_t::curr_pos, fir16_state_t::curr_pos, echo_can_state_t::fir_state, echo_can_state_t::fir_state_bg, echo_can_state_t::fir_taps16, echo_can_state_t::Lbgn, echo_can_state_t::Lbgn_acc, echo_can_state_t::Lbgn_upper, echo_can_state_t::Lbgn_upper_acc, echo_can_state_t::Lclean, echo_can_state_t::Lclean_bg, echo_can_state_t::Lclean_bgacc, echo_can_state_t::Lcleanacc, echo_can_state_t::Lrx, echo_can_state_t::Lrxacc, echo_can_state_t::Ltx, echo_can_state_t::Ltxacc, echo_can_state_t::nonupdate_dwell, echo_can_state_t::Pstates, echo_can_state_t::rx_hpf, echo_can_state_t::taps, and echo_can_state_t::tx_hpf.
| void echo_can_free | ( | echo_can_state_t * | ec | ) |
Free a voice echo canceller context.
| ec | The echo canceller context. |
References echo_can_state_t::fir_state, echo_can_state_t::fir_state_bg, echo_can_state_t::fir_taps16, and echo_can_state_t::snapshot.
| int16_t echo_can_hpf_tx | ( | echo_can_state_t * | ec, | |
| int16_t | tx | |||
| ) |
Process to high pass filter the tx signal.
| ec | The echo canceller context. | |
| tx | The transmitted auio sample. |
References echo_can_state_t::adaption_mode, and echo_can_state_t::tx_hpf.
| int16_t echo_can_update | ( | echo_can_state_t * | ec, | |
| int16_t | tx, | |||
| int16_t | rx | |||
| ) |
Process a sample through a voice echo canceller.
| ec | The echo canceller context. | |
| tx | The transmitted audio sample. | |
| rx | The received audio sample. |
References echo_can_state_t::adapt, echo_can_state_t::adaption_mode, echo_can_state_t::clean, echo_can_state_t::clean_nlp, echo_can_state_t::cng_filter, echo_can_state_t::cng_level, echo_can_state_t::cng_rndnum, fir16_state_t::coeffs, echo_can_state_t::cond_met, echo_can_state_t::curr_pos, fir16_state_t::curr_pos, echo_can_state_t::factor, echo_can_state_t::fir_state, echo_can_state_t::fir_state_bg, echo_can_state_t::fir_taps16, fir16_state_t::history, echo_can_state_t::Lbgn, echo_can_state_t::Lbgn_acc, echo_can_state_t::Lclean, echo_can_state_t::Lclean_bg, echo_can_state_t::Lclean_bgacc, echo_can_state_t::Lcleanacc, echo_can_state_t::log2taps, echo_can_state_t::Lrx, echo_can_state_t::Lrxacc, echo_can_state_t::Ltx, echo_can_state_t::Ltxacc, echo_can_state_t::nonupdate_dwell, echo_can_state_t::Pstates, echo_can_state_t::rx, echo_can_state_t::rx_hpf, echo_can_state_t::shift, echo_can_state_t::taps, and echo_can_state_t::tx.
1.5.6