/* * detach() is called when the media is terminated, and the stream is * to be disconnected from us. */ static void transport_detach(pjmedia_transport *tp, void *strm) { struct tp_adapter *adapter = (struct tp_adapter*)tp; PJ_UNUSED_ARG(strm); if (adapter->stream_user_data != NULL) { pjmedia_transport_detach(adapter->slave_tp, adapter); adapter->stream_user_data = NULL; adapter->stream_rtp_cb = NULL; adapter->stream_rtcp_cb = NULL; } }
/* * detach() is called when the media is terminated, and the stream is * to be disconnected from us. */ static void transport_detach(pjmedia_transport *tp, void *strm) { struct tp_zrtp *zrtp = (struct tp_zrtp*)tp; PJ_UNUSED_ARG(strm); PJ_ASSERT_ON_FAIL(tp, return); if (zrtp->stream_user_data != NULL) { pjmedia_transport_detach(zrtp->slave_tp, zrtp); zrtp->stream_user_data = NULL; zrtp->stream_rtp_cb = NULL; zrtp->stream_rtcp_cb = NULL; } }
static void transport_detach(pjmedia_transport *tp, void *strm) { transport_srtp *srtp = (transport_srtp*) tp; PJ_UNUSED_ARG(strm); PJ_ASSERT_ON_FAIL(tp, return); if (srtp->member_tp) { pjmedia_transport_detach(srtp->member_tp, srtp); } /* Clear up application infos from transport */ srtp->rtp_cb = NULL; srtp->rtcp_cb = NULL; srtp->user_data = NULL; }
static void transport_detach(pjmedia_transport *tp, void *strm) { transport_srtp *srtp = (transport_srtp*) tp; PJ_UNUSED_ARG(strm); PJ_ASSERT_ON_FAIL(tp, return); if (srtp->member_tp) { pjmedia_transport_detach(srtp->member_tp, srtp); } /* Clear up application infos from transport */ pj_lock_acquire(srtp->mutex); srtp->rtp_cb = NULL; srtp->rtcp_cb = NULL; srtp->user_data = NULL; pj_lock_release(srtp->mutex); srtp->member_tp_attached = PJ_FALSE; }
static pj_status_t transport_destroy (pjmedia_transport *tp) { transport_srtp *srtp = (transport_srtp *) tp; pj_status_t status; pj_lock_acquire(srtp->mutex); pjmedia_transport_detach(tp, NULL); if (srtp->setting.close_member_tp && srtp->member_tp) { pjmedia_transport_close(srtp->member_tp); } status = pjmedia_transport_srtp_stop(tp); pj_lock_release(srtp->mutex); pj_lock_destroy(srtp->mutex); pj_pool_release(srtp->pool); return status; }