Changes between Initial Version and Version 1 of 3rd_Party_Media_20


Ignore:
Timestamp:
May 17, 2012 5:09:16 AM (12 years ago)
Author:
ismangil
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 3rd_Party_Media_20

    v1 v1  
     1= Integrating Third Party Media Stack into PJSUA-LIB = 
     2 
     3Starting with PJSIP 2.0, support for integrating third party media stack into PJSUA-LIB was added. By following the steps below, application can use third party media stack to perform audio and video functionality while still making use of the full SIP, NAT, and security (including SRTP) features provided by PJSUA-LIB API. 
     4 
     5By disabling PJMEDIA, the following features will not be available in PJSUA-LIB (unless the equivalent implementation is provided by the third party media library): 
     6 - sound device management 
     7 - echo cancellation 
     8 - codecs 
     9 - jitter buffer 
     10 - RTP and RTCP 
     11 - WAV playback and recording 
     12 - conference bridge 
     13 - DTMF with RFC 2833 
     14 - and so on, except explicitly mentioned below 
     15 
     16The following features will still be available: 
     17 - all SIP features, including SIP registration, etc. 
     18 - SDP and SDP negotiation 
     19 - NAT traversal features (including ICE) 
     20 - security features including TLS and SRTP 
     21 - media transports 
     22 
     23Follow these steps to integrate third party media library with PJSUA-LIB: 
     24 
     25 1. Declare this in {{{pjlib/include/pj/config_site.h}}}: 
     26  {{{ 
     27#define PJSUA_MEDIA_HAS_PJMEDIA    0 
     28  }}} 
     29 to exclude PJMEDIA specific implementation from PJSUA-LIB library. Understandably you will loose all media features in PJSUA-LIB (this will be handled by your third party media stack). 
     30 1. Also copy suggested settings from {{{pjsip-apps/src/3rdparty_media_sample/config_site.h}}} into {{{pjlib/include/pj/config_site.h}}}. These settings are mostly used to exclude unneeded media components from the link process. 
     31 1. Build the libraries, but this time using  
     32  {{{ 
     33$ make lib 
     34  }}} 
     35  instead of just '''{{{make}}}''' or '''{{{make all}}}'''. This is because most samples will no longer build due to missing media in PJSUA-LIB, hence normal {{{make}}} will fail on these apps. The {{{make lib}}} command only builds the libraries and unit tests for the libraries. 
     36 1. Go to directory '''{{{pjsip-apps/src/3rdparty_media_sample}}}'''. This is a sample application with hook points to integrate third party media library. Fill in the media implementation in the alt_pjsua_xxx.c files, following the "TODO" notes. Run {{{make}}} to build the application. Once it's built, run ''alt_pjsua'' just as you run the usual ''pjsua'' application (it's essentially the same app!).