summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-03-04 14:52:44 +0000
committerBenny Prijono <bennylp@teluu.com>2006-03-04 14:52:44 +0000
commit8c25bb977ff1317989406988ecf39fc0a32ccd32 (patch)
tree209a2fc305b8ec42aeaa248f73f57a2817583a2f /pjsip/src/pjsua-lib
parentb572c1c64cab8d78d606b97ac5b95ee9c210ecd7 (diff)
Major modification in conference bridge to allow ports with different ptime and sampling rate. Also introduced sampling rate converter
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@277 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c7
-rw-r--r--pjsip/src/pjsua-lib/pjsua_settings.c14
2 files changed, 19 insertions, 2 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c
index 081a3a87..e944ea42 100644
--- a/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/pjsip/src/pjsua-lib/pjsua_core.c
@@ -72,6 +72,9 @@ void pjsua_default(void)
/* Default: do not use STUN: */
pjsua.stun_port1 = pjsua.stun_port2 = 0;
+ /* Default: sampling rate is 8000 */
+ pjsua.clock_rate = 8000;
+
/* Init accounts: */
pjsua.acc_cnt = 1;
for (i=0; i<PJ_ARRAY_SIZE(pjsua.acc); ++i) {
@@ -618,7 +621,9 @@ pj_status_t pjsua_start(void)
status = pjmedia_conf_create(pjsua.pool,
pjsua.max_calls+PJSUA_CONF_MORE_PORTS,
- 8000, 160, 16, &pjsua.mconf);
+ pjsua.clock_rate,
+ pjsua.clock_rate * 20 / 1000, 16,
+ &pjsua.mconf);
if (status != PJ_SUCCESS) {
pj_caching_pool_destroy(&pjsua.cp);
pjsua_perror(THIS_FILE,
diff --git a/pjsip/src/pjsua-lib/pjsua_settings.c b/pjsip/src/pjsua-lib/pjsua_settings.c
index e861f5c6..9e1d3ff8 100644
--- a/pjsip/src/pjsua-lib/pjsua_settings.c
+++ b/pjsip/src/pjsua-lib/pjsua_settings.c
@@ -83,6 +83,8 @@ static void usage(void)
puts(" --use-stun2=host[:port] Resolve local IP with the specified STUN servers");
puts("");
puts("Media Options:");
+ puts(" --wb Enable wideband codecs (16KHz)");
+ puts(" --uwb Enable ultra-wideband codecs (32KHz)");
puts(" --null-audio Use NULL audio device");
puts(" --play-file=file Play WAV file in conference bridge");
puts(" --auto-play Automatically play the file (to incoming calls only)");
@@ -218,7 +220,7 @@ pj_status_t pjsua_parse_args(int argc, char *argv[])
OPT_ADD_BUDDY, OPT_OFFER_X_MS_MSG, OPT_NO_PRESENCE,
OPT_AUTO_ANSWER, OPT_AUTO_HANGUP, OPT_AUTO_PLAY, OPT_AUTO_LOOP,
OPT_AUTO_CONF,
- OPT_PLAY_FILE, OPT_RTP_PORT,
+ OPT_PLAY_FILE, OPT_WB, OPT_UWB, OPT_RTP_PORT,
OPT_NEXT_ACCOUNT, OPT_NEXT_CRED, OPT_MAX_CALLS,
};
struct option long_options[] = {
@@ -228,6 +230,8 @@ pj_status_t pjsua_parse_args(int argc, char *argv[])
{ "app-log-level",1,0,OPT_APP_LOG_LEVEL},
{ "help", 0, 0, OPT_HELP},
{ "version", 0, 0, OPT_VERSION},
+ { "wb", 0, 0, OPT_WB},
+ { "uwb", 0, 0, OPT_UWB},
{ "null-audio", 0, 0, OPT_NULL_AUDIO},
{ "local-port", 1, 0, OPT_LOCAL_PORT},
{ "proxy", 1, 0, OPT_PROXY},
@@ -327,6 +331,14 @@ pj_status_t pjsua_parse_args(int argc, char *argv[])
pjsua.null_audio = 1;
break;
+ case OPT_WB:
+ pjsua.clock_rate = 16000;
+ break;
+
+ case OPT_UWB:
+ pjsua.clock_rate = 32000;
+ break;
+
case OPT_LOCAL_PORT: /* local-port */
lval = pj_strtoul(pj_cstr(&tmp, optarg));
if (lval < 1 || lval > 65535) {