summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_vid.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2011-10-04 08:23:07 +0000
committerBenny Prijono <bennylp@teluu.com>2011-10-04 08:23:07 +0000
commit9dadde885bba819e5bdd2a51e219be669f02efd2 (patch)
treea92941f4b8cb304a16ab99bb89feb4b21fe12267 /pjsip/src/pjsua-lib/pjsua_vid.c
parentcb646a2403e5e3bf84c2eb59c602f46fef11464e (diff)
Added pjsua_call_vid_stream_is_running() and pjmedia_vid_stream_is_running() API (closes #1379)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3786 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_vid.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_vid.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_vid.c b/pjsip/src/pjsua-lib/pjsua_vid.c
index 0410260c..7ad73bbb 100644
--- a/pjsip/src/pjsua-lib/pjsua_vid.c
+++ b/pjsip/src/pjsua-lib/pjsua_vid.c
@@ -2038,5 +2038,39 @@ PJ_DEF(int) pjsua_call_get_vid_stream_idx(pjsua_call_id call_id)
}
+/*
+ * Determine if video stream for the specified call is currently running
+ * for the specified direction.
+ */
+PJ_DEF(pj_bool_t) pjsua_call_vid_stream_is_running( pjsua_call_id call_id,
+ int med_idx,
+ pjmedia_dir dir)
+{
+ pjsua_call *call;
+ pjsua_call_media *call_med;
+
+ PJ_ASSERT_RETURN(call_id>=0 && call_id<(int)pjsua_var.ua_cfg.max_calls,
+ PJ_EINVAL);
+
+ /* Verify and normalize media index */
+ if (med_idx == -1) {
+ med_idx = pjsua_call_get_vid_stream_idx(call_id);
+ }
+
+ call = &pjsua_var.calls[call_id];
+ PJ_ASSERT_RETURN(med_idx >= 0 && med_idx < call->med_cnt, PJ_EINVAL);
+
+ call_med = &call->media[med_idx];
+
+ /* Verify if the stream is transmitting video */
+ if (call_med->type != PJMEDIA_TYPE_VIDEO || (call_med->dir & dir) == 0 ||
+ !call_med->strm.v.stream)
+ {
+ return PJ_FALSE;
+ }
+
+ return pjmedia_vid_stream_is_running(call_med->strm.v.stream, dir);
+}
+
#endif /* PJSUA_HAS_VIDEO */