diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2008-06-09 09:35:59 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2008-06-09 09:35:59 +0000 |
commit | aaf615c87e0dda72c1d4be4447f6cc7a4e6f4dcb (patch) | |
tree | e53572f071433a191bf77421092dd78a4369206f | |
parent | f6d8f37b237c92c95a51ff34f525a4c18543087a (diff) |
Added more validations & a new API (thanks Florian Bomers):
- added more validation on pjmedia transport get info.
- added more validation on stop_media_session() of pjsua_media, useful when conference is not used.
- added new API for retrieving user_data of pjmedia session.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1998 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjmedia/include/pjmedia/session.h | 9 | ||||
-rw-r--r-- | pjmedia/include/pjmedia/transport.h | 2 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/session.c | 7 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_media.c | 4 |
4 files changed, 20 insertions, 2 deletions
diff --git a/pjmedia/include/pjmedia/session.h b/pjmedia/include/pjmedia/session.h index 37664469..225044c7 100644 --- a/pjmedia/include/pjmedia/session.h +++ b/pjmedia/include/pjmedia/session.h @@ -172,6 +172,15 @@ pjmedia_session_create( pjmedia_endpt *endpt, PJ_DECL(pj_status_t) pjmedia_session_get_info( pjmedia_session *session, pjmedia_session_info *info ); +/** + * Get user data of the session. + * + * @param session The session being queried. + * + * @return User data of the session. + */ +PJ_DECL(void*) pjmedia_session_get_user_data( pjmedia_session *session); + /** * Activate all streams in media session for the specified direction. diff --git a/pjmedia/include/pjmedia/transport.h b/pjmedia/include/pjmedia/transport.h index 51bab86c..b898f65b 100644 --- a/pjmedia/include/pjmedia/transport.h +++ b/pjmedia/include/pjmedia/transport.h @@ -496,7 +496,7 @@ PJ_INLINE(void) pjmedia_transport_info_init(pjmedia_transport_info *info) PJ_INLINE(pj_status_t) pjmedia_transport_get_info(pjmedia_transport *tp, pjmedia_transport_info *info) { - if (tp->op->get_info) + if (tp && tp->op && tp->op->get_info) return (*tp->op->get_info)(tp, info); else return PJ_ENOTSUP; diff --git a/pjmedia/src/pjmedia/session.c b/pjmedia/src/pjmedia/session.c index e8e65951..bc043860 100644 --- a/pjmedia/src/pjmedia/session.c +++ b/pjmedia/src/pjmedia/session.c @@ -685,6 +685,13 @@ PJ_DEF(pj_status_t) pjmedia_session_get_info( pjmedia_session *session, return PJ_SUCCESS; } +/* + * Get user data. + */ +PJ_DEF(void*) pjmedia_session_get_user_data( pjmedia_session *session) +{ + return (session? session->user_data : NULL); +} /** * Destroy media session. diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index a43ce4cb..9449a33c 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -953,7 +953,9 @@ static void stop_media_session(pjsua_call_id call_id) //pjmedia_transport_media_stop(call->med_tp); if (call->conf_slot != PJSUA_INVALID_ID) { - pjmedia_conf_remove_port(pjsua_var.mconf, call->conf_slot); + if (pjsua_var.mconf) { + pjmedia_conf_remove_port(pjsua_var.mconf, call->conf_slot); + } call->conf_slot = PJSUA_INVALID_ID; } |