summaryrefslogtreecommitdiff
path: root/pjsip/src
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2011-07-19 11:11:07 +0000
committerNanang Izzuddin <nanang@teluu.com>2011-07-19 11:11:07 +0000
commitb32c80d0cfc7b47fc344f8e5873771f803fbeb4d (patch)
treee7925fd23ad577103b9d7a90dc2fb090a89c6b63 /pjsip/src
parent262defe8ad75325065fd64ea5d3a03a59c5f3039 (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')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c15
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c4
-rw-r--r--pjsip/src/pjsua-lib/pjsua_dump.c4
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c7
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);