diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2011-07-19 11:11:07 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2011-07-19 11:11:07 +0000 |
commit | b32c80d0cfc7b47fc344f8e5873771f803fbeb4d (patch) | |
tree | e7925fd23ad577103b9d7a90dc2fb090a89c6b63 /pjsip/src/pjsua-lib | |
parent | 262defe8ad75325065fd64ea5d3a03a59c5f3039 (diff) |
Fixed #1271: protected all video features with PJMEDIA_HAS_VIDEO macro setting.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3667 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_acc.c | 15 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 4 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_dump.c | 4 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_media.c | 7 |
4 files changed, 29 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index 6947c1aa..98fe5cd8 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -382,6 +382,13 @@ PJ_DEF(pj_status_t) pjsua_acc_add( const pjsua_acc_config *cfg, /* Must have a transport */ PJ_ASSERT_RETURN(pjsua_var.tpdata[0].data.ptr != NULL, PJ_EINVALIDOP); + /* Verify media count */ +#if !defined(PJMEDIA_HAS_VIDEO) || (PJMEDIA_HAS_VIDEO == 0) + PJ_ASSERT_RETURN(cfg->max_video_cnt == 0, PJ_EINVAL); +#endif + PJ_ASSERT_RETURN(cfg->max_audio_cnt + cfg->max_video_cnt <= + PJSUA_MAX_CALL_MEDIA, PJ_ETOOMANY); + PJSUA_LOCK(); /* Find empty account id. */ @@ -641,6 +648,14 @@ PJ_DEF(pj_status_t) pjsua_acc_modify( pjsua_acc_id acc_id, PJ_ASSERT_RETURN(acc_id>=0 && acc_id<(int)PJ_ARRAY_SIZE(pjsua_var.acc), PJ_EINVAL); + /* Verify media count */ +#if !defined(PJMEDIA_HAS_VIDEO) || (PJMEDIA_HAS_VIDEO == 0) + PJ_ASSERT_RETURN(cfg->max_video_cnt == 0, PJ_EINVAL); +#endif + PJ_ASSERT_RETURN(cfg->max_audio_cnt + cfg->max_video_cnt <= + PJSUA_MAX_CALL_MEDIA, PJ_ETOOMANY); + + PJSUA_LOCK(); acc = &pjsua_var.acc[acc_id]; diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index f8abc938..2679a3ad 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -1465,10 +1465,12 @@ PJ_DEF(pj_status_t) pjsua_call_get_stream_info( pjsua_call_id call_id, status = pjmedia_stream_get_info(call_med->strm.a.stream, &psi->info.aud); break; +#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) case PJMEDIA_TYPE_VIDEO: status = pjmedia_vid_stream_get_info(call_med->strm.v.stream, &psi->info.vid); break; +#endif default: status = PJMEDIA_EINVALIMEDIATYPE; break; @@ -1512,6 +1514,7 @@ PJ_DEF(pj_status_t) pjsua_call_get_stream_stat( pjsua_call_id call_id, status = pjmedia_stream_get_stat_jbuf(call_med->strm.a.stream, &stat->jbuf); break; +#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) case PJMEDIA_TYPE_VIDEO: status = pjmedia_vid_stream_get_stat(call_med->strm.v.stream, &stat->rtcp); @@ -1519,6 +1522,7 @@ PJ_DEF(pj_status_t) pjsua_call_get_stream_stat( pjsua_call_id call_id, status = pjmedia_vid_stream_get_stat_jbuf(call_med->strm.v.stream, &stat->jbuf); break; +#endif default: status = PJMEDIA_EINVALIMEDIATYPE; break; diff --git a/pjsip/src/pjsua-lib/pjsua_dump.c b/pjsip/src/pjsua-lib/pjsua_dump.c index f94e036f..8dec22b8 100644 --- a/pjsip/src/pjsua-lib/pjsua_dump.c +++ b/pjsip/src/pjsua-lib/pjsua_dump.c @@ -312,6 +312,8 @@ static void dump_media_session(const char *indent, info.tx_pt, info.param->setting.frm_per_pkt* info.param->info.frm_ptime); + +#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) } else if (call_med->type == PJMEDIA_TYPE_VIDEO) { pjmedia_vid_stream *stream = call_med->strm.v.stream; pjmedia_vid_stream_info info; @@ -343,6 +345,8 @@ static void dump_media_session(const char *indent, vfd->size.w, vfd->size.h, vfd->fps.num*1.0/vfd->fps.denum); } +#endif /* PJMEDIA_HAS_VIDEO */ + } else { has_stat = PJ_FALSE; } diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index 94e81566..f9995045 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -1247,6 +1247,7 @@ pj_status_t pjsua_call_media_init(pjsua_call_media *call_med, call_med->tp_st = PJSUA_MED_TP_IDLE; +#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) /* While in initial call, set default video devices */ if (type == PJMEDIA_TYPE_VIDEO) { call_med->strm.v.rdr_dev = acc->cfg.vid_rend_dev; @@ -1262,6 +1263,8 @@ pj_status_t pjsua_call_media_init(pjsua_call_media *call_med, call_med->strm.v.cap_dev = info.id; } } +#endif + } else if (call_med->tp_st == PJSUA_MED_TP_DISABLED) { /* Media is being reenabled. */ call_med->tp_st = PJSUA_MED_TP_INIT; @@ -1650,10 +1653,12 @@ pj_status_t pjsua_media_channel_create_sdp(pjsua_call_id call_id, status = pjmedia_endpt_create_audio_sdp(pjsua_var.med_endpt, pool, &tpinfo.sock_info, 0, &m); break; +#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) case PJMEDIA_TYPE_VIDEO: status = pjmedia_endpt_create_video_sdp(pjsua_var.med_endpt, pool, &tpinfo.sock_info, 0, &m); break; +#endif default: pj_assert(!"Invalid call_med media type"); return PJ_EBUG; @@ -2124,7 +2129,7 @@ pj_status_t pjsua_media_channel_update(pjsua_call_id call_id, call->audio_idx = mi; } break; -#if PJMEDIA_HAS_VIDEO +#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) case PJMEDIA_TYPE_VIDEO: status = video_channel_update(call_med, tmp_pool, local_sdp, remote_sdp); |