wiki:Migration From 0.5 Version To 0.6 Version

Version 3 (modified by bennylp, 17 years ago) (diff)


Migration From 0.5 Version To 0.6 Version

What's New and/or Changed


Changes in PJLIB:

  • 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.
  • PJLIB now has ip_helper.h file to enumerate local interface and local routing (needed by ICE). Windows application must link with IPHLPAPI.LIB now.

New pjnath Library

There 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.

If the application is based on pjsua-lib, then you will have to add pjnath library to your link process.


PJMEDIA has underdone quite a lot of changes, although most the API remains the same:

  • Most third party libraries now live in their own projects, separate from pjmedia or pjmedia-codec. There are few new libraries, under third_party directory:
    • libportaudio, for PortAudio?.
    • libgsmcodec, for GSM codec.
    • libilbccodec, for ILBC codec.
    • libspeex, for Speex library.
  • Resample API is added a new channel_count parameter.
  • Added Speex resampler as one of the resampling backend (default is still disabled)

Migrating Your Application

All Applications

If your application is based on PJSUA-LIB, you need to add PJNATH in your input library,

All Windows and WinCE Applications

What need to change:

  • On Windows and WinCE, the new IP helper abstraction requires application to link with IPHLPAPI.LIB. Note that IPHLPAPI.LIB is not shipped with Visual Studio 6 so you need to download Platform SDK to get this library. See the section about Visual Studio 6 below.

Visual Studio 6

If you're using Visual Studio 6, you need to:

  • download Platform SDK from MSDN, and
  • add relevant include and library directory to VS6 options, after the standard Visual Studio 6 include and library path.

This is required because Iphlpapi.[h|lib] is not shipped with Visual Studio 6.