Looks like this "Access violation" is only when i try to call (*tp->op->send_rtp)(tp, pkt, size); from another thread (I stored med_cb in the thread which notified me on pjsua_aud_channel_update() >From C/C++ programming point of view can we store function pointer in one thread and use in another one right? John On Wed, Oct 31, 2012 at 3:18 AM, John Nash <john.nash778 at gmail.com> wrote: > Hello, > > I am trying to integrate a 3rd party Media engine into pjsip version > 2.0.1. I followed the link > http://trac.pjsip.org/repos/wiki/3rd_Party_Media_20. In my implementation > I need to use pjmedia transport while letting other operations (Like jitter > buffer, recording playing etc) to the media engine. I am getting an access > violation error while trying to send RTP packet using the function > pjmedia_transport_send_rtp(g_call_med.tp, in_data, len); g_call_med is a > global variable which I set in pjsua_aud_channel_update() (I receive it > there as an argument?). > > My media engine notifies in case of a RTP packet is ready to be sent and I > receive it in a callback function and from there I try to send using > pjmedia transport. > > I get access violation at following exact line (In red color)... > PJ_INLINE(pj_status_t) pjmedia_transport_send_rtp(pjmedia_transport *tp, > const void *pkt, > pj_size_t size) > { > return (*tp->op->send_rtp)(tp, pkt, size); > } > > I am not sure what is wrong. > > John > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20121101/a1381828/attachment-0001.html>