summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2011-10-09 10:58:38 +0000
committerBenny Prijono <bennylp@teluu.com>2011-10-09 10:58:38 +0000
commitccd701371c5d44869c3f66b1426d335a143b75ff (patch)
treea7ca244da3b098f69e771af679ddbdf19504df0b /pjmedia
parenta1a6b84641a8f18d82106298b664e4654b1d0fab (diff)
Fixed #1383: Update the transport adapter sample in pjsua
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3804 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/include/pjmedia/transport_adapter_sample.h9
-rw-r--r--pjmedia/src/pjmedia/transport_adapter_sample.c7
2 files changed, 12 insertions, 4 deletions
diff --git a/pjmedia/include/pjmedia/transport_adapter_sample.h b/pjmedia/include/pjmedia/transport_adapter_sample.h
index 6c41a69d..62eb1c0f 100644
--- a/pjmedia/include/pjmedia/transport_adapter_sample.h
+++ b/pjmedia/include/pjmedia/transport_adapter_sample.h
@@ -49,15 +49,18 @@ PJ_BEGIN_DECL
* @param endpt The media endpoint.
* @param name Optional name to identify this media transport
* for logging purposes.
- * @param transport The underlying media transport to send and receive
- * RTP/RTCP packets.
+ * @param base_tp The base/underlying media transport to send and
+ * receive RTP/RTCP packets.
+ * @param del_base Specify whether the base transport should also be
+ * destroyed when destroy() is called upon us.
* @param p_tp Pointer to receive the media transport instance.
*
* @return PJ_SUCCESS on success, or the appropriate error code.
*/
PJ_DECL(pj_status_t) pjmedia_tp_adapter_create( pjmedia_endpt *endpt,
const char *name,
- pjmedia_transport *transport,
+ pjmedia_transport *base_tp,
+ pj_bool_t del_base,
pjmedia_transport **p_tp);
PJ_END_DECL
diff --git a/pjmedia/src/pjmedia/transport_adapter_sample.c b/pjmedia/src/pjmedia/transport_adapter_sample.c
index c118c108..a076bdab 100644
--- a/pjmedia/src/pjmedia/transport_adapter_sample.c
+++ b/pjmedia/src/pjmedia/transport_adapter_sample.c
@@ -94,6 +94,7 @@ static struct pjmedia_transport_op tp_adapter_op =
struct tp_adapter
{
pjmedia_transport base;
+ pj_bool_t del_base;
pj_pool_t *pool;
@@ -118,6 +119,7 @@ struct tp_adapter
PJ_DEF(pj_status_t) pjmedia_tp_adapter_create( pjmedia_endpt *endpt,
const char *name,
pjmedia_transport *transport,
+ pj_bool_t del_base,
pjmedia_transport **p_tp)
{
pj_pool_t *pool;
@@ -138,6 +140,7 @@ PJ_DEF(pj_status_t) pjmedia_tp_adapter_create( pjmedia_endpt *endpt,
/* Save the transport as the slave transport */
adapter->slave_tp = transport;
+ adapter->del_base = del_base;
/* Done */
*p_tp = &adapter->base;
@@ -421,7 +424,9 @@ static pj_status_t transport_destroy (pjmedia_transport *tp)
struct tp_adapter *adapter = (struct tp_adapter*)tp;
/* Close the slave transport */
- pjmedia_transport_close(adapter->slave_tp);
+ if (adapter->del_base) {
+ pjmedia_transport_close(adapter->slave_tp);
+ }
/* Self destruct.. */
pj_pool_release(adapter->pool);