123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- #ifndef __PJMEDIA_ECHO_H__
- #define __PJMEDIA_ECHO_H__
- #include <pjmedia/types.h>
- PJ_BEGIN_DECL
- typedef struct pjmedia_echo_state pjmedia_echo_state;
- typedef enum pjmedia_echo_flag
- {
-
- PJMEDIA_ECHO_DEFAULT= 0,
-
- PJMEDIA_ECHO_SPEEX = 1,
-
- PJMEDIA_ECHO_SIMPLE = 2,
-
- PJMEDIA_ECHO_WEBRTC = 3,
-
- PJMEDIA_ECHO_WEBRTC_AEC3 = 4,
-
- PJMEDIA_ECHO_ALGO_MASK = 15,
-
- PJMEDIA_ECHO_NO_LOCK = 16,
-
- PJMEDIA_ECHO_USE_SIMPLE_FIFO = 32,
-
- PJMEDIA_ECHO_USE_SW_ECHO = 64,
-
-
- PJMEDIA_ECHO_USE_NOISE_SUPPRESSOR = 128,
-
- PJMEDIA_ECHO_USE_GAIN_CONTROLLER = 256,
-
-
- PJMEDIA_ECHO_AGGRESSIVENESS_DEFAULT = 0,
-
-
- PJMEDIA_ECHO_AGGRESSIVENESS_CONSERVATIVE = 0x1000,
-
-
- PJMEDIA_ECHO_AGGRESSIVENESS_MODERATE = 0x2000,
-
-
- PJMEDIA_ECHO_AGGRESSIVENESS_AGGRESSIVE = 0x3000,
-
-
- PJMEDIA_ECHO_AGGRESSIVENESS_MASK = 0xF000
- } pjmedia_echo_flag;
- #define PJMEDIA_ECHO_STAT_NOT_SPECIFIED 999999
- typedef struct pjmedia_echo_stat
- {
-
-
- const char *name;
-
- int delay;
-
- double return_loss;
-
- double return_loss_enh;
-
- int std;
-
- float frac_delay;
-
- unsigned learning;
-
- unsigned duration;
-
- unsigned tail;
-
- int min_factor;
-
- int avg_factor;
-
- pj_str_t stat_info;
-
- char buf_[128];
- } pjmedia_echo_stat;
- PJ_DECL(void) pjmedia_echo_stat_default(pjmedia_echo_stat *stat);
- PJ_DECL(pj_status_t) pjmedia_echo_create(pj_pool_t *pool,
- unsigned clock_rate,
- unsigned samples_per_frame,
- unsigned tail_ms,
- unsigned latency_ms,
- unsigned options,
- pjmedia_echo_state **p_echo );
- PJ_DECL(pj_status_t) pjmedia_echo_create2(pj_pool_t *pool,
- unsigned clock_rate,
- unsigned channel_count,
- unsigned samples_per_frame,
- unsigned tail_ms,
- unsigned latency_ms,
- unsigned options,
- pjmedia_echo_state **p_echo );
- PJ_DECL(pj_status_t) pjmedia_echo_destroy(pjmedia_echo_state *echo );
- PJ_DECL(pj_status_t) pjmedia_echo_reset(pjmedia_echo_state *echo );
- PJ_DECL(pj_status_t) pjmedia_echo_get_stat(pjmedia_echo_state *echo,
- pjmedia_echo_stat *p_stat);
- PJ_DECL(pj_status_t) pjmedia_echo_playback(pjmedia_echo_state *echo,
- pj_int16_t *play_frm );
- PJ_DECL(pj_status_t) pjmedia_echo_capture(pjmedia_echo_state *echo,
- pj_int16_t *rec_frm,
- unsigned options );
- PJ_DECL(pj_status_t) pjmedia_echo_cancel( pjmedia_echo_state *echo,
- pj_int16_t *rec_frm,
- const pj_int16_t *play_frm,
- unsigned options,
- void *reserved );
- PJ_END_DECL
- #endif
|