diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-06-19 14:49:14 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-06-19 14:49:14 +0000 |
commit | c737c25054a22df28cdfbc3ec470e0877da6cb0b (patch) | |
tree | a4f266a8f2f7ef2d1aeab27b31caf87185234eb7 /pjsip | |
parent | e301abfa0b1b8fcc1a54af18b602e293227693e3 (diff) |
Re-live --quality options in pjsua
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@528 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/build/Makefile | 2 | ||||
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 13 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_media.c | 21 |
3 files changed, 30 insertions, 6 deletions
diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile index 1fd183aa..30e61e10 100644 --- a/pjsip/build/Makefile +++ b/pjsip/build/Makefile @@ -126,7 +126,7 @@ pjsua-lib: echo Making $@ $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $@ -clean depend realclean: +clean depend: $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $@ $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $@ $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $@ diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index 90ba0f42..466c3196 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -2037,7 +2037,17 @@ struct pjsua_media_config */ unsigned thread_cnt; - + /** + * Media quality, 0-10, according to this table: + * 8-10: resampling use large filter, + * 3-7: resampling use small filter, + * 1-2: resampling use linear. + * The media quality also sets speex codec quality/complexity to the + * number. + * + * Default: 10. + */ + unsigned quality; }; @@ -2054,6 +2064,7 @@ PJ_INLINE(void) pjsua_media_config_default(pjsua_media_config *cfg) cfg->max_media_ports = 32; cfg->has_ioqueue = PJ_TRUE; cfg->thread_cnt = 1; + cfg->quality = 10; } diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index 2dddd634..730e3d89 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -37,6 +37,7 @@ static void close_snd_dev(void); pj_status_t pjsua_media_subsys_init(const pjsua_media_config *cfg) { pj_str_t codec_id; + unsigned opt; pj_status_t status; /* Copy configuration */ @@ -75,7 +76,8 @@ pj_status_t pjsua_media_subsys_init(const pjsua_media_config *cfg) /* Register speex. */ status = pjmedia_codec_speex_init(pjsua_var.med_endpt, PJMEDIA_SPEEX_NO_UWB, - -1, -1); + pjsua_var.media_cfg.quality, + pjsua_var.media_cfg.quality); if (status != PJ_SUCCESS) { pjsua_perror(THIS_FILE, "Error initializing Speex codec", status); @@ -129,6 +131,18 @@ pj_status_t pjsua_media_subsys_init(const pjsua_media_config *cfg) pjsua_var.mconf_cfg.channel_count = 1; pjsua_var.mconf_cfg.bits_per_sample = 16; + /* Init options for conference bridge. */ + opt = PJMEDIA_CONF_NO_DEVICE; + if (pjsua_var.media_cfg.quality >= 3 && + pjsua_var.media_cfg.quality <= 7) + { + opt |= PJMEDIA_CONF_SMALL_FILTER; + } + else if (pjsua_var.media_cfg.quality < 3) { + opt |= PJMEDIA_CONF_USE_LINEAR; + } + + /* Init conference bridge. */ status = pjmedia_conf_create(pjsua_var.pool, pjsua_var.media_cfg.max_media_ports, @@ -136,8 +150,7 @@ pj_status_t pjsua_media_subsys_init(const pjsua_media_config *cfg) pjsua_var.mconf_cfg.channel_count, pjsua_var.mconf_cfg.samples_per_frame, pjsua_var.mconf_cfg.bits_per_sample, - PJMEDIA_CONF_NO_DEVICE, - &pjsua_var.mconf); + opt, &pjsua_var.mconf); if (status != PJ_SUCCESS) { pjsua_perror(THIS_FILE, "Media stack initialization has returned error", @@ -532,7 +545,7 @@ PJ_DEF(pj_status_t) pjsua_conf_get_port_info( pjsua_conf_port_id id, pjsua_conf_port_info *info) { pjmedia_conf_port_info cinfo; - unsigned i, count; + unsigned i; pj_status_t status; status = pjmedia_conf_get_port_info( pjsua_var.mconf, id, &cinfo); |