Ignore:
Timestamp:
Nov 3, 2016 9:39:20 AM (4 years ago)
Author:
riza
Message:

Re #1977: Add attach2() and pjmedia_transport_attach2() to pjmedia transport interface.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/transport_adapter_sample.c

    r3841 r5478  
    2727static pj_status_t transport_get_info (pjmedia_transport *tp, 
    2828                                       pjmedia_transport_info *info); 
    29 static pj_status_t transport_attach   (pjmedia_transport *tp, 
    30                                        void *user_data, 
    31                                        const pj_sockaddr_t *rem_addr, 
    32                                        const pj_sockaddr_t *rem_rtcp, 
    33                                        unsigned addr_len, 
    34                                        void (*rtp_cb)(void*, 
    35                                                       void*, 
    36                                                       pj_ssize_t), 
    37                                        void (*rtcp_cb)(void*, 
    38                                                        void*, 
    39                                                        pj_ssize_t)); 
     29static pj_status_t transport_attach2  (pjmedia_transport *tp, 
     30                                       pjmedia_transport_attach_param *att_prm); 
    4031static void        transport_detach   (pjmedia_transport *tp, 
    4132                                       void *strm); 
     
    7768{ 
    7869    &transport_get_info, 
    79     &transport_attach, 
     70    NULL, 
    8071    &transport_detach, 
    8172    &transport_send_rtp, 
     
    8778    &transport_media_stop, 
    8879    &transport_simulate_lost, 
    89     &transport_destroy 
     80    &transport_destroy, 
     81    &transport_attach2, 
    9082}; 
    9183 
     
    10193    /* Stream information. */ 
    10294    void                *stream_user_data; 
     95    void                *stream_ref; 
    10396    void               (*stream_rtp_cb)(void *user_data, 
    10497                                        void *pkt, 
     
    191184} 
    192185 
    193  
    194 /* 
    195  * attach() is called by stream to register callbacks that we should 
     186/* 
     187 * attach2() is called by stream to register callbacks that we should 
    196188 * call on receipt of RTP and RTCP packets. 
    197189 */ 
    198 static pj_status_t transport_attach(pjmedia_transport *tp, 
    199                                     void *user_data, 
    200                                     const pj_sockaddr_t *rem_addr, 
    201                                     const pj_sockaddr_t *rem_rtcp, 
    202                                     unsigned addr_len, 
    203                                     void (*rtp_cb)(void*, 
    204                                                    void*, 
    205                                                    pj_ssize_t), 
    206                                     void (*rtcp_cb)(void*, 
    207                                                     void*, 
    208                                                     pj_ssize_t)) 
     190static pj_status_t transport_attach2(pjmedia_transport *tp, 
     191                                     pjmedia_transport_attach_param *att_param) 
    209192{ 
    210193    struct tp_adapter *adapter = (struct tp_adapter*)tp; 
     
    216199     */ 
    217200    pj_assert(adapter->stream_user_data == NULL); 
    218     adapter->stream_user_data = user_data; 
    219     adapter->stream_rtp_cb = rtp_cb; 
    220     adapter->stream_rtcp_cb = rtcp_cb; 
    221  
    222     status = pjmedia_transport_attach(adapter->slave_tp, adapter, rem_addr, 
    223                                       rem_rtcp, addr_len, &transport_rtp_cb, 
    224                                       &transport_rtcp_cb); 
     201    adapter->stream_user_data = att_param->user_data; 
     202    adapter->stream_rtp_cb = att_param->rtp_cb; 
     203    adapter->stream_rtcp_cb = att_param->rtcp_cb; 
     204    adapter->stream_ref = att_param->stream; 
     205 
     206    att_param->rtp_cb = &transport_rtp_cb; 
     207    att_param->rtcp_cb = &transport_rtcp_cb; 
     208    att_param->user_data = adapter; 
     209         
     210    status = pjmedia_transport_attach2(adapter->slave_tp, att_param); 
    225211    if (status != PJ_SUCCESS) { 
    226212        adapter->stream_user_data = NULL; 
    227213        adapter->stream_rtp_cb = NULL; 
    228214        adapter->stream_rtcp_cb = NULL; 
     215        adapter->stream_ref = NULL; 
    229216        return status; 
    230217    } 
     
    248235        adapter->stream_rtp_cb = NULL; 
    249236        adapter->stream_rtcp_cb = NULL; 
     237        adapter->stream_ref = NULL; 
    250238    } 
    251239} 
Note: See TracChangeset for help on using the changeset viewer.