diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-03-08 12:37:22 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-03-08 12:37:22 +0000 |
commit | 2979b937447c7b15352682e44a9f465c08fea112 (patch) | |
tree | a875beed51a49505c841f21ca9df6c0dacda0f65 /pjmedia/src | |
parent | 21d3fdbca30845ee7f78dc4f641c03747b9cd1c0 (diff) |
Added options to disable microphone device, usefull for streaming server (some systems only have sound player)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@312 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/conference.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/pjmedia/src/pjmedia/conference.c b/pjmedia/src/pjmedia/conference.c index 53a2bf4b..09b79312 100644 --- a/pjmedia/src/pjmedia/conference.c +++ b/pjmedia/src/pjmedia/conference.c @@ -127,6 +127,7 @@ struct conf_port */ struct pjmedia_conf { + unsigned options; /**< Bitmask options. */ unsigned max_ports; /**< Maximum ports. */ unsigned port_cnt; /**< Current number of ports. */ unsigned connect_cnt; /**< Total number of connections */ @@ -333,6 +334,7 @@ PJ_DEF(pj_status_t) pjmedia_conf_create( pj_pool_t *pool, unsigned clock_rate, unsigned samples_per_frame, unsigned bits_per_sample, + unsigned options, pjmedia_conf **p_conf ) { pjmedia_conf *conf; @@ -351,6 +353,7 @@ PJ_DEF(pj_status_t) pjmedia_conf_create( pj_pool_t *pool, conf->ports = pj_pool_zalloc(pool, max_ports*sizeof(void*)); PJ_ASSERT_RETURN(conf->ports, PJ_ENOMEM); + conf->options = options; conf->max_ports = max_ports; conf->clock_rate = clock_rate; conf->samples_per_frame = samples_per_frame; @@ -385,16 +388,21 @@ PJ_DEF(pj_status_t) pjmedia_conf_create( pj_pool_t *pool, */ static pj_status_t create_sound( pjmedia_conf *conf ) { - /* Open recorder. */ - conf->snd_rec = pj_snd_open_recorder(-1 ,&conf->snd_info, &rec_cb, conf); - if (conf->snd_rec == NULL) { - return -1; + /* Open recorder only if mic is not disabled. */ + if ((conf->options & PJMEDIA_CONF_NO_MIC) == 0) { + conf->snd_rec = pj_snd_open_recorder(-1 ,&conf->snd_info, + &rec_cb, conf); + if (conf->snd_rec == NULL) { + return -1; + } } /* Open player */ conf->snd_player = pj_snd_open_player(-1, &conf->snd_info, &play_cb, conf); if (conf->snd_player == NULL) { - pj_snd_stream_close(conf->snd_rec); + if (conf->snd_rec) { + pj_snd_stream_close(conf->snd_rec); + } return -1; } @@ -425,7 +433,7 @@ static pj_status_t resume_sound( pjmedia_conf *conf ) char errmsg[PJ_ERR_MSG_SIZE]; pj_status_t status; - if (conf->snd_rec == NULL) { + if (conf->snd_player == NULL) { status = create_sound(conf); if (status != PJ_SUCCESS) return status; |