summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_call.c
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2012-06-12 08:27:52 +0000
committerNanang Izzuddin <nanang@teluu.com>2012-06-12 08:27:52 +0000
commit110117d73d7d0374f26a1336eee196692a7fe182 (patch)
tree99ed322034a9f109fc2de6b7a0cd999798bfe27c /pjsip/src/pjsua-lib/pjsua_call.c
parent21b186195eecc5a92de07e4b2d7e126a2d5ff9f0 (diff)
Close #1534: done.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4164 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_call.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index 460c269e..ccc06538 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -1614,7 +1614,7 @@ PJ_DEF(pj_status_t) pjsua_call_get_info( pjsua_call_id call_id,
info->rem_vid_cnt = call->rem_vid_cnt;
}
- /* Build array of media status and dir */
+ /* Build array of active media info */
info->media_cnt = 0;
for (mi=0; mi < call->med_cnt &&
info->media_cnt < PJ_ARRAY_SIZE(info->media); ++mi)
@@ -1651,6 +1651,36 @@ PJ_DEF(pj_status_t) pjsua_call_get_info( pjsua_call_id call_id,
info->conf_slot = call->media[call->audio_idx].strm.a.conf_slot;
}
+ /* Build array of provisional media info */
+ info->prov_media_cnt = 0;
+ for (mi=0; mi < call->med_prov_cnt &&
+ info->prov_media_cnt < PJ_ARRAY_SIZE(info->prov_media); ++mi)
+ {
+ pjsua_call_media *call_med = &call->media_prov[mi];
+
+ info->prov_media[info->prov_media_cnt].index = mi;
+ info->prov_media[info->prov_media_cnt].status = call_med->state;
+ info->prov_media[info->prov_media_cnt].dir = call_med->dir;
+ info->prov_media[info->prov_media_cnt].type = call_med->type;
+ if (call_med->type == PJMEDIA_TYPE_AUDIO) {
+ info->prov_media[info->prov_media_cnt].stream.aud.conf_slot =
+ call_med->strm.a.conf_slot;
+ } else if (call_med->type == PJMEDIA_TYPE_VIDEO) {
+ pjmedia_vid_dev_index cap_dev = PJMEDIA_VID_INVALID_DEV;
+
+ info->prov_media[info->prov_media_cnt].stream.vid.win_in =
+ call_med->strm.v.rdr_win_id;
+
+ if (call_med->strm.v.cap_win_id != PJSUA_INVALID_ID) {
+ cap_dev = call_med->strm.v.cap_dev;
+ }
+ info->prov_media[info->prov_media_cnt].stream.vid.cap_dev=cap_dev;
+ } else {
+ continue;
+ }
+ ++info->prov_media_cnt;
+ }
+
/* calculate duration */
if (info->state >= PJSIP_INV_STATE_DISCONNECTED) {