summaryrefslogtreecommitdiff
path: root/pjmedia/include
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-02-21 10:08:27 +0000
committerBenny Prijono <bennylp@teluu.com>2008-02-21 10:08:27 +0000
commitf7718e1cd91ef1748a998c40fa807d60bc283f22 (patch)
tree8722726c8029b7c8ac5903048952ed2d8756ecce /pjmedia/include
parentd277c485a04b43f04fa40dce59ae11b7cbf2fae4 (diff)
Ticket #467: fixed issues with RTP/AVP vs RTP/SAVP negotiation
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1810 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/include')
-rw-r--r--pjmedia/include/pjmedia/sdp.h24
-rw-r--r--pjmedia/include/pjmedia/transport.h21
2 files changed, 44 insertions, 1 deletions
diff --git a/pjmedia/include/pjmedia/sdp.h b/pjmedia/include/pjmedia/sdp.h
index 8e284256..768af9f1 100644
--- a/pjmedia/include/pjmedia/sdp.h
+++ b/pjmedia/include/pjmedia/sdp.h
@@ -493,6 +493,30 @@ PJ_DECL(pj_status_t) pjmedia_sdp_media_cmp(const pjmedia_sdp_media *sd1,
unsigned option);
+/**
+ * Compare two media transports for compatibility.
+ *
+ * @param t1 The first media transport to compare.
+ * @param t2 The second media transport to compare.
+ *
+ * @return PJ_SUCCESS when both media transports are compatible,
+ * otherwise returns PJMEDIA_SDP_ETPORTNOTEQUAL.
+ */
+PJ_DECL(pj_status_t) pjmedia_sdp_transport_cmp(const pj_str_t *t1,
+ const pj_str_t *t2);
+
+
+/**
+ * Deactivate SDP media.
+ *
+ * @param m The SDP media to deactivate.
+ *
+ * @return PJ_SUCCESS when SDP media successfully deactivated,
+ * otherwise appropriate status code returned.
+ */
+PJ_DECL(pj_status_t) pjmedia_sdp_media_deactivate(pj_pool_t *pool,
+ pjmedia_sdp_media *m);
+
/* **************************************************************************
* SDP SESSION DESCRIPTION
diff --git a/pjmedia/include/pjmedia/transport.h b/pjmedia/include/pjmedia/transport.h
index b2b16d5e..2629cf87 100644
--- a/pjmedia/include/pjmedia/transport.h
+++ b/pjmedia/include/pjmedia/transport.h
@@ -212,6 +212,21 @@ PJ_BEGIN_DECL
*/
typedef struct pjmedia_transport pjmedia_transport;
+/**
+ * This enumeration specifies the general behaviour of media processing
+ */
+typedef enum pjmedia_tranport_media_option
+{
+ /**
+ * When this flag is specified, the transport will not perform media
+ * transport validation, this is useful when transport is stacked with
+ * other transport, for example when transport UDP is stacked under
+ * transport SRTP, media transport validation only need to be done by
+ * transport SRTP.
+ */
+ PJMEDIA_TPMED_NO_TRANSPORT_CHECKING = 1
+
+} pjmedia_tranport_media_option;
/**
* This structure describes the operations for the stream transport.
@@ -292,6 +307,7 @@ struct pjmedia_transport_op
*/
pj_status_t (*media_create)(pjmedia_transport *tp,
pj_pool_t *pool,
+ unsigned options,
pjmedia_sdp_session *sdp_local,
const pjmedia_sdp_session *sdp_remote,
unsigned media_index);
@@ -508,6 +524,7 @@ PJ_INLINE(pj_status_t) pjmedia_transport_send_rtcp(pjmedia_transport *tp,
*
* @param tp The media transport.
* @param pool The memory pool.
+ * @param option Option flags, from #pjmedia_tranport_media_option
* @param sdp_local Local SDP.
* @param sdp_remote Remote SDP.
* @param media_index Media index in SDP.
@@ -516,11 +533,12 @@ PJ_INLINE(pj_status_t) pjmedia_transport_send_rtcp(pjmedia_transport *tp,
*/
PJ_INLINE(pj_status_t) pjmedia_transport_media_create(pjmedia_transport *tp,
pj_pool_t *pool,
+ unsigned options,
pjmedia_sdp_session *sdp_local,
const pjmedia_sdp_session *sdp_remote,
unsigned media_index)
{
- return (*tp->op->media_create)(tp, pool, sdp_local, sdp_remote,
+ return (*tp->op->media_create)(tp, pool, options, sdp_local, sdp_remote,
media_index);
}
@@ -540,6 +558,7 @@ PJ_INLINE(pj_status_t) pjmedia_transport_media_create(pjmedia_transport *tp,
*
* @param tp The media transport.
* @param pool The memory pool.
+ * @param option The media transport option.
* @param sdp_local Local SDP.
* @param sdp_remote Remote SDP.
* @param media_index Media index to start.