Changes between Initial Version and Version 1 of new_changes


Ignore:
Timestamp:
Apr 30, 2007 7:37:25 AM (17 years ago)
Author:
bennylp
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • new_changes

    v1 v1  
     1= Major Changes since Version 0.5 = 
     2 
     3= Summary = 
     4 
     5== Summary of Changes == 
     6  
     7 * Added {{{PJ_POOL_ALLOC_T}}} and {{{PJ_POOL_ZALLOC_T}}} macros in pjlib. 
     8 * Added IP helper API in {{{ip_helper.h}}}. 
     9 * Added new '''PJNATH''' library containing ICE, STUN, and TURN. 
     10 * Most third party libraries now lives in separate directories, under '''third_party''' directory. 
     11 * STUN related settings have been moved from transport config to pjsua config in PJSUA-LIB. 
     12 
     13== Updating the Application == 
     14 
     15=== All Projects === 
     16 
     17 * The STUN settings have been moved from {{{pjsua_transport_config}}} to {{{pjsua_config}}}. 
     18 
     19=== All Visual Studio/Embedded Visual C Projects === 
     20 
     21 * Add '''IPHLPAPI.LIB''' to input library (Visual Studio 6 users see below). 
     22 * Add these third party libraries into your project dependencies: 
     23   * {{{third_party/build/gsm/libgsmcodec}}} 
     24   * {{{third_party/build/ilbc/libilbccodec}}} 
     25   * {{{third_party/build/portaudio/libportaudio}}} 
     26   * {{{third_party/build/resample/libresample}}} 
     27   * {{{third_party/build/speex/libspeex}}} 
     28 * Applications based on PJSUA-LIB, or applications wanting to use the new STUN and ICE functionality in PJNATH, should add {{{pjnath/build/pjnath}}} library into the project dependencies. 
     29 
     30=== Visual Studio 6 === 
     31 
     32VS6 users need to download another/newer Platform SDK from MSDN because IPHLPAPI.LIB is not shipped with VS6. This step is not necessasry if VC++ 2005 Express is already installed in the same machine. 
     33 
     34Once Platform SDK has been downloaded, add the relevant include and library paths to VS6 directories, '''after''' the include and library paths of the VS6's Platform SDK. 
     35 
     36=== Makefile based Projects === 
     37 
     38Makefile based project should include PJ's '''{{{build.mak}}}''' file and gets the link specification from that file (as described in [wiki:Getting_Started_Using Getting Started Part II: Building Your Own Application using PJSIP]). 
     39 
     40 
     41= Detail Changes = 
     42 
     43== PJLIB == 
     44 
     45Changes in PJLIB: 
     46 * Added {{{PJ_POOL_ALLOC_T}}} and {{{PJ_POOL_ZALLOC_T}}} macros, which should be preferable than the old {{{pj_pool_alloc()}}}/{{{pj_pool_zalloc()}}} since it provides more type safety. 
     47 * PJLIB now has IP Helper API in {{{ip_helper.h}}} file to enumerate local interface and local routing (needed by ICE). Windows application must link with IPHLPAPI.LIB. 
     48 
     49 
     50== New PJNATH Library == 
     51 
     52There is a new {{{PJNATH}}} library for NAT traversal helper, containing ICE and new STUN implementation. This library is platform independent, and it depends only on {{{pjlib}}} and {{{pjlib-util}}}. 
     53 
     54If the application is based on {{{pjsua-lib}}}, then you will have to add {{{pjnath}}} library to your link process. 
     55 
     56== PJMEDIA == 
     57 
     58PJMEDIA is the one that has underdone the most changes, although most the API remains the same: 
     59 * All third party libraries now are separated from {{{pjmedia}}} or {{{pjmedia-codec}}} into their own directory, so that it would be easier to maintain (synchronize with the original source). They now live in '''{{{third_party}}}''' directory. 
     60 * Added Speex resampler as one of the resampling backend (default is still disabled) 
     61 * Steve Underwood's PLC has been removed from PJMEDIA. Now PJMEDIA only uses PLC that is built-in with the codec, for example in Speex and iLBC. 
     62 
     63=== !PortAudio === 
     64 
     65!PortAudio now lives in '''{{{third_party/portaudio}}}''' directory, and is directly synch-ed to main !PortAudio SVN ({{{v19-devel}}} branch, although it's locked to a specific revision). This arrangement would make it easy to synchronize !PortAudio with their development. 
     66 
     67The PJMEDIA specific build files for !PortAudio is located under '''{{{third_party/build/portaudio}}}''' directory. 
     68 
     69=== Speex === 
     70 
     71Speex now lives in '''{{{third_party/speex}}}''' directory, and is directly synch-ed to main Speex SVN ({{{trunk}}}, although it's locked to a specific revision). This arrangement would make it easy to synchronize !PortAudio with Speex development. 
     72 
     73The PJMEDIA specific build files for Speex is located under '''{{{third_party/build/speex}}}''' directory. 
     74 
     75=== GSM Codec === 
     76 
     77The GSM codec now lives in '''{{{third_party/gsm}}}''' directory, and the content is taken from GSM tarball release. 
     78 
     79The PJMEDIA specific build files for GSM is located under '''{{{third_party/build/gsm}}}''' directory. 
     80 
     81 
     82=== iLBC Codec === 
     83 
     84The iLBC codec now lives in '''{{{third_party/ilbc}}}''' directory, and the content is taken from iLBC RFC. 
     85 
     86The PJMEDIA specific build files for iLBC is located under '''{{{third_party/build/ilbc}}}''' directory. 
     87 
     88 
     89 
     90=== Resample === 
     91 
     92The resampling library now lives in '''{{{third_party/resample}}}''' directory, and the implementation was based on {{{libresample-1.7}}}, but was  modified (unfortunately I couldn't find the original {{{libresample-1.7.tar.gz}}} anymore, so most original files that come with the original library are missing). 
     93 
     94The PJMEDIA specific build files for resample is located under '''{{{third_party/build/resample}}}''' directory. 
     95 
     96In addition, PJMEDIA now also supports the sample rate converter in Speex. 
     97 
     98To control which resampling back-end to be used in PJMEDIA, declare either of  
     99 
     100these macros in your {{{config_site.h}}}: 
     101 * {{{PJMEDIA_HAS_LIBRESAMPLE=1}}}, which is the default. 
     102 * {{{PJMEDIA_HAS_SPEEX_RESAMPLE=1}}}, if you want to try Speex resampler. 
     103 
     104Because of this new arrangements, {{{PJMEDIA_HAS_SMALL_FILTER}}} and {{{PJMEDIA_HAS_LARGE_FILTER}}} macros are now obsolete. 
     105 
     106 
     107=== PLC === 
     108 
     109Support for PLC (Packet Loss Concealment) implementation that is based on Steve Underwood's SpanDSP work has been removed. Now PJMEDIA will only use PLC that is built-in with the codec, which means that this feature is only available for Speex and iLBC codec. 
     110 
     111Because of this, the '''{{{PJMEDIA_HAS_STEVEU_PLC}}}''' configuration macro is now obsolete. 
     112 
     113 
     114=== MP3 File Writer === 
     115 
     116Support for encoding/writing MP3 file (the MP3 file writer port) has been removed from PJMEDIA. If application wants this, it can get the original files from '''{{{third_party/mp3}}}''' directory. 
     117 
     118 
     119== PJSUA-LIB == 
     120 
     121The STUN related settings have been moved from transport config to PJSUA config.