diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-07-27 22:04:56 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-07-27 22:04:56 +0000 |
commit | 34520eaca94bf5e4edb9fe37301c72f5b57aa7e2 (patch) | |
tree | db0fde4c8e5ab0b422a079309877bfe9e376f845 /pjsip/src | |
parent | 9716653fda5019f1c944b0e1dafe304ab14e5aa3 (diff) |
Added capability in pjsua to add application created media port to pjsua's conference bridge, also capability to use custom sound device in pjsua.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@632 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_media.c | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index a25c6745..c8c20490 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -339,7 +339,9 @@ pj_status_t pjsua_media_subsys_start(void) } /* Create sound port if none is created yet */ - if (pjsua_var.snd_port==NULL && pjsua_var.null_snd==NULL) { + if (pjsua_var.snd_port==NULL && pjsua_var.null_snd==NULL && + !pjsua_var.no_snd) + { status = pjsua_set_snd_dev(pjsua_var.cap_dev, pjsua_var.play_dev); if (status != PJ_SUCCESS) { /* Error opening sound device, use null device */ @@ -571,6 +573,35 @@ PJ_DEF(pj_status_t) pjsua_conf_get_port_info( pjsua_conf_port_id id, /* + * Add arbitrary media port to PJSUA's conference bridge. + */ +PJ_DEF(pj_status_t) pjsua_conf_add_port( pj_pool_t *pool, + pjmedia_port *port, + pjsua_conf_port_id *p_id) +{ + pj_status_t status; + + status = pjmedia_conf_add_port(pjsua_var.mconf, pool, + port, NULL, (unsigned*)p_id); + if (status != PJ_SUCCESS) { + if (p_id) + *p_id = PJSUA_INVALID_ID; + } + + return status; +} + + +/* + * Remove arbitrary slot from the conference bridge. + */ +PJ_DEF(pj_status_t) pjsua_conf_remove_port(pjsua_conf_port_id id) +{ + return pjmedia_conf_remove_port(pjsua_var.mconf, (unsigned)id); +} + + +/* * Establish unidirectional media flow from souce to sink. */ PJ_DEF(pj_status_t) pjsua_conf_connect( pjsua_conf_port_id source, @@ -962,6 +993,21 @@ PJ_DEF(pj_status_t) pjsua_set_null_snd_dev(void) } + +/* + * Use no device! + */ +PJ_DEF(pjmedia_port*) pjsua_set_no_snd_dev(void) +{ + /* Close existing sound device */ + close_snd_dev(); + + pjsua_var.no_snd = PJ_TRUE; + return pjmedia_conf_get_master_port(pjsua_var.mconf); +} + + + /***************************************************************************** * Codecs. */ |