diff options
-rw-r--r-- | pjmedia/include/pjmedia/config.h | 3 | ||||
-rw-r--r-- | pjsip-apps/src/pjsua/pjsua_app.c | 57 | ||||
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 18 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 2 |
4 files changed, 69 insertions, 11 deletions
diff --git a/pjmedia/include/pjmedia/config.h b/pjmedia/include/pjmedia/config.h index 9e4621d2..9e53f562 100644 --- a/pjmedia/include/pjmedia/config.h +++ b/pjmedia/include/pjmedia/config.h @@ -57,7 +57,8 @@ */ #ifndef PJMEDIA_SOUND_IMPLEMENTATION # if defined(PJ_WIN32) && PJ_WIN32!=0 -# define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_WIN32_DIRECT_SOUND +/*# define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_WIN32_DIRECT_SOUND*/ +# define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_PORTAUDIO_SOUND # else # define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_PORTAUDIO_SOUND # endif diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index 02e5cbce..b59365ac 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -917,15 +917,25 @@ static int write_settings(const struct app_config *config, pj_strcat2(&cfg, line); } /* Media clock rate. */ - if (config->media_cfg.clock_rate) { + if (config->media_cfg.clock_rate != PJSUA_DEFAULT_CLOCK_RATE) { pj_ansi_sprintf(line, "--clock-rate %d\n", config->media_cfg.clock_rate); pj_strcat2(&cfg, line); + } else { + pj_ansi_sprintf(line, "#using default --clock-rate %d\n", + config->media_cfg.clock_rate); + pj_strcat2(&cfg, line); } - if (config->media_cfg.quality != 10) { + + /* quality */ + if (config->media_cfg.quality != PJSUA_DEFAULT_CODEC_QUALITY) { pj_ansi_sprintf(line, "--quality %d\n", config->media_cfg.quality); pj_strcat2(&cfg, line); + } else { + pj_ansi_sprintf(line, "#using default --quality %d\n", + config->media_cfg.quality); + pj_strcat2(&cfg, line); } @@ -936,6 +946,49 @@ static int write_settings(const struct app_config *config, pj_strcat2(&cfg, line); } + /* no-vad */ + if (config->media_cfg.no_vad) { + pj_strcat2(&cfg, "--no-vad\n"); + } + + /* ec-tail */ + if (config->media_cfg.ec_tail_len != PJSUA_DEFAULT_EC_TAIL_LEN) { + pj_ansi_sprintf(line, "--ec-tail %d\n", + config->media_cfg.ec_tail_len); + pj_strcat2(&cfg, line); + } else { + pj_ansi_sprintf(line, "#using default --ec-tail %d\n", + config->media_cfg.ec_tail_len); + pj_strcat2(&cfg, line); + } + + + /* ilbc-mode */ + if (config->media_cfg.ilbc_mode != PJSUA_DEFAULT_ILBC_MODE) { + pj_ansi_sprintf(line, "--ilbc-mode %d\n", + config->media_cfg.ilbc_mode); + pj_strcat2(&cfg, line); + } else { + pj_ansi_sprintf(line, "#using default --ilbc-mode %d\n", + config->media_cfg.ilbc_mode); + pj_strcat2(&cfg, line); + } + + /* RTP drop */ + if (config->media_cfg.tx_drop_pct) { + pj_ansi_sprintf(line, "--tx-drop-pct %d\n", + config->media_cfg.tx_drop_pct); + pj_strcat2(&cfg, line); + + } + if (config->media_cfg.rx_drop_pct) { + pj_ansi_sprintf(line, "--rx-drop-pct %d\n", + config->media_cfg.rx_drop_pct); + pj_strcat2(&cfg, line); + + } + + /* Start RTP port. */ pj_ansi_sprintf(line, "--rtp-port %d\n", config->rtp_cfg.port); diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index 6fd640fe..4ee7aba6 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -2039,6 +2039,10 @@ PJ_DECL(pj_status_t) pjsua_im_typing(pjsua_acc_id acc_id, # define PJSUA_MAX_CONF_PORTS 254 #endif +#define PJSUA_DEFAULT_CLOCK_RATE 16000 +#define PJSUA_DEFAULT_CODEC_QUALITY 5 +#define PJSUA_DEFAULT_ILBC_MODE 20 +#define PJSUA_DEFAULT_EC_TAIL_LEN 256 /** @@ -2087,7 +2091,7 @@ struct pjsua_media_config * The media quality also sets speex codec quality/complexity to the * number. * - * Default: 6. + * Default: 5 (PJSUA_DEFAULT_CODEC_QUALITY). */ unsigned quality; @@ -2108,7 +2112,7 @@ struct pjsua_media_config /** * iLBC mode (20 or 30). * - * Default: 20 + * Default: 20 (PJSUA_DEFAULT_ILBC_MODE) */ unsigned ilbc_mode; @@ -2131,7 +2135,7 @@ struct pjsua_media_config /** * Echo canceller tail length, in miliseconds. * - * Default: 0 (disabled, for now) + * Default: 128 (PJSUA_DEFAULT_EC_TAIL_LEN) */ unsigned ec_tail_len; }; @@ -2146,13 +2150,13 @@ PJ_INLINE(void) pjsua_media_config_default(pjsua_media_config *cfg) { pj_bzero(cfg, sizeof(*cfg)); - cfg->clock_rate = 16000; + cfg->clock_rate = PJSUA_DEFAULT_CLOCK_RATE; cfg->max_media_ports = 32; cfg->has_ioqueue = PJ_TRUE; cfg->thread_cnt = 1; - cfg->quality = 6; - cfg->ilbc_mode = 20; - cfg->ec_tail_len = 500; + cfg->quality = PJSUA_DEFAULT_CODEC_QUALITY; + cfg->ilbc_mode = PJSUA_DEFAULT_ILBC_MODE; + cfg->ec_tail_len = PJSUA_DEFAULT_EC_TAIL_LEN; } diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index 31d7f6c0..68231718 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -795,7 +795,7 @@ PJ_DEF(pj_status_t) pjsua_call_hangup(pjsua_call_id call_id, call = &pjsua_var.calls[call_id]; if (!call->inv) { - PJ_LOG(3,(THIS_FILE,"Call has been disconnected")); + PJ_LOG(3,(THIS_FILE,"Invalid call or call has been disconnected")); PJSUA_UNLOCK(); return PJ_EINVAL; } |