diff options
35 files changed, 203 insertions, 192 deletions
diff --git a/build.symbian/bld.inf b/build.symbian/bld.inf index 5ded5aec..9e51ee9a 100644 --- a/build.symbian/bld.inf +++ b/build.symbian/bld.inf @@ -1,3 +1,8 @@ +prj_platforms +winscw +armv5 +gcce + prj_mmpfiles pjlib.mmp pjlib_util.mmp diff --git a/build.symbian/pjlib.mmp b/build.symbian/pjlib.mmp index 8ec56ca7..e574b47a 100644 --- a/build.symbian/pjlib.mmp +++ b/build.symbian/pjlib.mmp @@ -6,6 +6,8 @@ VENDORID 0x70000001 SOURCEPATH ..\pjlib\src\pj OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 @@ -56,37 +58,37 @@ SOURCE sock_select_symbian.cpp SOURCE timer_symbian.cpp SOURCE unicode_symbian.cpp -DOCUMENT os_symbian.h +//DOCUMENT os_symbian.h -DOCUMENT pj\addr_resolv.h -DOCUMENT pj\array.h -DOCUMENT pj\assert.h -DOCUMENT pj\config.h -DOCUMENT pj\config_site.h +//DOCUMENT pj\addr_resolv.h +//DOCUMENT pj\array.h +//DOCUMENT pj\assert.h +//DOCUMENT pj\config.h +//DOCUMENT pj\config_site.h //DOCUMENT pj\config_site_sample.h -DOCUMENT pj\ctype.h -DOCUMENT pj\errno.h -DOCUMENT pj\except.h -DOCUMENT pj\file_access.h -DOCUMENT pj\file_io.h -DOCUMENT pj\guid.h -DOCUMENT pj\hash.h -DOCUMENT pj\ioqueue.h -DOCUMENT pj\ip_helper.h -DOCUMENT pj\list.h -DOCUMENT pj\lock.h -DOCUMENT pj\log.h -DOCUMENT pj\os.h -DOCUMENT pj\\pool.h -DOCUMENT pj\\pool_buf.h -DOCUMENT pj\rand.h -DOCUMENT pj\rbtree.h -DOCUMENT pj\sock.h -DOCUMENT pj\sock_select.h -DOCUMENT pj\string.h -DOCUMENT pj\timer.h -DOCUMENT pj\types.h -DOCUMENT pj\unicode.h +//DOCUMENT pj\ctype.h +//DOCUMENT pj\errno.h +//DOCUMENT pj\except.h +//DOCUMENT pj\file_access.h +//DOCUMENT pj\file_io.h +//DOCUMENT pj\guid.h +//DOCUMENT pj\hash.h +//DOCUMENT pj\ioqueue.h +//DOCUMENT pj\ip_helper.h +//DOCUMENT pj\list.h +//DOCUMENT pj\lock.h +//DOCUMENT pj\log.h +//DOCUMENT pj\os.h +//DOCUMENT pj\\pool.h +//DOCUMENT pj\\pool_buf.h +//DOCUMENT pj\rand.h +//DOCUMENT pj\rbtree.h +//DOCUMENT pj\sock.h +//DOCUMENT pj\sock_select.h +//DOCUMENT pj\string.h +//DOCUMENT pj\timer.h +//DOCUMENT pj\types.h +//DOCUMENT pj\unicode.h SYSTEMINCLUDE ..\pjlib\include diff --git a/build.symbian/pjlib_test.mmp b/build.symbian/pjlib_test.mmp index 9836a14e..ed88906e 100644 --- a/build.symbian/pjlib_test.mmp +++ b/build.symbian/pjlib_test.mmp @@ -9,6 +9,8 @@ MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ // Test files diff --git a/build.symbian/pjlib_util.mmp b/build.symbian/pjlib_util.mmp index 30f59fa2..fc161cae 100644 --- a/build.symbian/pjlib_util.mmp +++ b/build.symbian/pjlib_util.mmp @@ -9,6 +9,8 @@ MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ // // PJLIB-UTIL files diff --git a/build.symbian/pjmedia.mmp b/build.symbian/pjmedia.mmp index 7af3187b..4534a45e 100644 --- a/build.symbian/pjmedia.mmp +++ b/build.symbian/pjmedia.mmp @@ -1,80 +1,80 @@ -TARGET pjmedia.lib
-TARGETTYPE lib
-UID 0x100039CE 0x10004299
-VENDORID 0x70000001
-
-SOURCEPATH ..\pjmedia\src\pjmedia
-
-//OPTION CW -lang c++
-
-MACRO PJ_M_I386=1
-MACRO PJ_SYMBIAN=1
-
-//
-// Platform independent source
-//
-
-SOURCE alaw_ulaw.c
-SOURCE alaw_ulaw_table.c
-SOURCE bidirectional.c
-SOURCE clock_thread.c
-SOURCE codec.c
-SOURCE conference.c
-SOURCE echo_common.c
-SOURCE echo_port.c
-SOURCE echo_suppress.c
-SOURCE endpoint.c
-SOURCE errno.c
-SOURCE g711.c
-SOURCE jbuf.c
-SOURCE master_port.c
-SOURCE mem_capture.c
-SOURCE mem_player.c
-SOURCE null_port.c
-SOURCE plc_common.c
-SOURCE port.c
-SOURCE resample_port.c
-SOURCE resample_resample.c
-SOURCE rtcp.c
-SOURCE rtp.c
-//SDP files are in pjsdp.mmp
-//SOURCE sdp.c
-//SOURCE sdp_cmp.c
-//SOURCE sdp_neg.c
-SOURCE session.c
-SOURCE silencedet.c
-SOURCE sound_port.c
-SOURCE splitcomb.c
-SOURCE stream.c
-SOURCE tonegen.c
-SOURCE transport_ice.c
-SOURCE transport_udp.c
-SOURCE wav_player.c
-SOURCE wav_playlist.c
-SOURCE wav_writer.c
-SOURCE wave.c
-
-//
-// Symbian specific
-// These are on separate project
-//
-//SOURCE symbian_sound.cpp
-//SOURCE null_sound.c
-
-
-//
-// Header files
-//
-
-
-SYSTEMINCLUDE ..\pjmedia\include
-SYSTEMINCLUDE ..\pjlib\include
-SYSTEMINCLUDE ..\pjlib-util\include
-SYSTEMINCLUDE ..\pjnath\include
-
-SYSTEMINCLUDE \epoc32\include
-SYSTEMINCLUDE \epoc32\include\libc
-SYSTEMINCLUDE \epoc32\include\mmf\plugin
-
-CAPABILITY None
-
+TARGET pjmedia.lib +TARGETTYPE lib +UID 0x100039CE 0x10004299 +VENDORID 0x70000001 + +SOURCEPATH ..\pjmedia\src\pjmedia + +//OPTION CW -lang c++ + +MACRO PJ_M_I386=1 +MACRO PJ_SYMBIAN=1 + +// +// Platform independent source +// + +SOURCE alaw_ulaw.c +SOURCE alaw_ulaw_table.c +SOURCE bidirectional.c +SOURCE clock_thread.c +SOURCE codec.c +SOURCE conference.c +SOURCE echo_common.c +SOURCE echo_port.c +SOURCE echo_suppress.c +SOURCE endpoint.c +SOURCE errno.c +SOURCE g711.c +SOURCE jbuf.c +SOURCE master_port.c +SOURCE mem_capture.c +SOURCE mem_player.c +SOURCE null_port.c +SOURCE plc_common.c +SOURCE port.c +SOURCE resample_port.c +SOURCE resample_resample.c +SOURCE rtcp.c +SOURCE rtp.c +//SDP files are in pjsdp.mmp +//SOURCE sdp.c +//SOURCE sdp_cmp.c +//SOURCE sdp_neg.c +SOURCE session.c +SOURCE silencedet.c +SOURCE sound_port.c +SOURCE splitcomb.c +SOURCE stream.c +SOURCE tonegen.c +SOURCE transport_ice.c +SOURCE transport_udp.c +SOURCE wav_player.c +SOURCE wav_playlist.c +SOURCE wav_writer.c +SOURCE wave.c + +// +// Symbian specific +// These are on separate project +// +//SOURCE symbian_sound.cpp +//SOURCE null_sound.c + + +// +// Header files +// + + +SYSTEMINCLUDE ..\pjmedia\include +SYSTEMINCLUDE ..\pjlib\include +SYSTEMINCLUDE ..\pjlib-util\include +SYSTEMINCLUDE ..\pjnath\include + +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE \epoc32\include\libc +//SYSTEMINCLUDE \epoc32\include\mmf\plugin + +CAPABILITY None + diff --git a/build.symbian/pjnath.mmp b/build.symbian/pjnath.mmp index 8e648dd6..2bd86911 100644 --- a/build.symbian/pjnath.mmp +++ b/build.symbian/pjnath.mmp @@ -8,7 +8,9 @@ SOURCEPATH ..\pjnath\src\pjnath MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 -//OPTION CW -lang c++ +OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ // // PJNATH files @@ -45,7 +47,7 @@ SYSTEMINCLUDE ..\pjnath\include SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc -LIBRARY pjlib.lib -LIBRARY pjlib_util.lib +//STATICLIBRARY pjlib.lib +//STATICLIBRARY pjlib_util.lib CAPABILITY None diff --git a/build.symbian/pjsdp.mmp b/build.symbian/pjsdp.mmp index 97f461bf..3ff46f1a 100644 --- a/build.symbian/pjsdp.mmp +++ b/build.symbian/pjsdp.mmp @@ -6,6 +6,8 @@ VENDORID 0x70000001 SOURCEPATH ..\pjmedia\src\pjmedia OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 diff --git a/build.symbian/pjsip.mmp b/build.symbian/pjsip.mmp index d1dd741e..cabb74be 100644 --- a/build.symbian/pjsip.mmp +++ b/build.symbian/pjsip.mmp @@ -9,6 +9,8 @@ MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ // PJSIP-CORE files diff --git a/build.symbian/pjsip_simple.mmp b/build.symbian/pjsip_simple.mmp index 0ff7f162..f77c5b45 100644 --- a/build.symbian/pjsip_simple.mmp +++ b/build.symbian/pjsip_simple.mmp @@ -9,6 +9,8 @@ MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ // PJSIP-SIMPLE files diff --git a/build.symbian/pjsip_ua.mmp b/build.symbian/pjsip_ua.mmp index cef53738..08ab2452 100644 --- a/build.symbian/pjsip_ua.mmp +++ b/build.symbian/pjsip_ua.mmp @@ -11,7 +11,7 @@ MACRO PJ_SYMBIAN=1 //OPTION CW -lang c++ -// PJSIP-SIMPLE files +// PJSIP-UA files SOURCE sip_inv.c SOURCE sip_reg.c diff --git a/build.symbian/pjstun_client.mmp b/build.symbian/pjstun_client.mmp index 98194e86..2c9d3521 100644 --- a/build.symbian/pjstun_client.mmp +++ b/build.symbian/pjstun_client.mmp @@ -9,6 +9,8 @@ MACRO PJ_M_I386=1 MACRO PJ_SYMBIAN=1 OPTION CW -lang c++ +OPTION ARMCC --cpp +OPTION GCC -x c++ // PJSTUN-CLIENT files diff --git a/pjlib/include/pj/compat/cc_armcc.h b/pjlib/include/pj/compat/cc_armcc.h index 504ca889..52fe74c0 100644 --- a/pjlib/include/pj/compat/cc_armcc.h +++ b/pjlib/include/pj/compat/cc_armcc.h @@ -33,8 +33,12 @@ #define PJ_CC_VER_2 __ARMCC_MINOR__ #define PJ_CC_VER_3 __ARMCC_PATCHLEVEL__ +#ifdef __cplusplus +# define PJ_INLINE_SPECIFIER inline +#else +# define PJ_INLINE_SPECIFIER static __inline +#endif -#define PJ_INLINE_SPECIFIER static // why is not inline accepted? #define PJ_THREAD_FUNC #define PJ_NORETURN #define PJ_ATTR_NORETURN __attribute__ ((noreturn)) diff --git a/pjlib/include/pj/compat/os_symbian.h b/pjlib/include/pj/compat/os_symbian.h index b1b1cd1a..f6787b06 100644 --- a/pjlib/include/pj/compat/os_symbian.h +++ b/pjlib/include/pj/compat/os_symbian.h @@ -144,7 +144,9 @@ #define PJ_HAS_SOCKLEN_T 1 typedef unsigned int socklen_t; +#ifndef __GCCE__ #include <e32def.h> +#endif /* #if defined(PJ_EXPORTING) diff --git a/pjlib/include/pj/errno.h b/pjlib/include/pj/errno.h index cd5d9164..df6c1b02 100644 --- a/pjlib/include/pj/errno.h +++ b/pjlib/include/pj/errno.h @@ -111,6 +111,7 @@ PJ_DECL(void) pj_set_netos_error(pj_status_t code); PJ_DECL(pj_str_t) pj_strerror( pj_status_t statcode, char *buf, pj_size_t bufsize); +typedef pj_str_t (*pjsip_error_callback)(pj_status_t, char*, pj_size_t); /** * Register strerror message handler for the specified error space. * Application can register its own handler to supply the error message @@ -132,8 +133,7 @@ PJ_DECL(pj_str_t) pj_strerror( pj_status_t statcode, */ PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start_code, pj_status_t err_space, - pj_str_t (*f)(pj_status_t,char*, - pj_size_t)); + pjsip_error_callback f); /** * @hideinitializer diff --git a/pjlib/include/pj/except.h b/pjlib/include/pj/except.h index 610f4626..509b01be 100644 --- a/pjlib/include/pj/except.h +++ b/pjlib/include/pj/except.h @@ -26,6 +26,7 @@ #include <pj/types.h> #include <pj/compat/setjmp.h> +#include <pj/log.h> PJ_BEGIN_DECL @@ -265,6 +266,15 @@ public: while (0) #define PJ_GET_EXCEPTION() pj_excp_.code_ +#else + +#define PJ_USE_EXCEPTION +#define PJ_TRY +#define PJ_CATCH_ANY if (0) +#define PJ_END +#define PJ_THROW(x_id) do { PJ_LOG(1,("PJ_THROW"," error code = %d",x_id)); } while (0) +#define PJ_GET_EXCEPTION() 0 + #endif /* __cplusplus */ #else diff --git a/pjlib/include/pj/types.h b/pjlib/include/pj/types.h index 7b7598b1..e9095524 100644 --- a/pjlib/include/pj/types.h +++ b/pjlib/include/pj/types.h @@ -302,6 +302,7 @@ PJ_DECL(pj_status_t) pj_init(void); */ PJ_DECL(void) pj_shutdown(void); +typedef void (*pj_exit_callback)(void); /** * Register cleanup function to be called by PJLIB when pj_shutdown() is * called. @@ -310,7 +311,7 @@ PJ_DECL(void) pj_shutdown(void); * * @return PJ_SUCCESS on success. */ -PJ_DECL(pj_status_t) pj_atexit(void (*func)(void)); +PJ_DECL(pj_status_t) pj_atexit(pj_exit_callback func); diff --git a/pjlib/src/pj/addr_resolv_symbian.cpp b/pjlib/src/pj/addr_resolv_symbian.cpp index c9a776c8..95da5cdd 100644 --- a/pjlib/src/pj/addr_resolv_symbian.cpp +++ b/pjlib/src/pj/addr_resolv_symbian.cpp @@ -35,7 +35,7 @@ PJ_DEF(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he) // Convert name to Unicode wchar_t name16[PJ_MAX_HOSTNAME]; pj_ansi_to_unicode(name->ptr, name->slen, name16, PJ_ARRAY_SIZE(name16)); - TPtrC16 data(name16); + TPtrC16 data((const TUint16*)name16); // Resolve! TNameEntry nameEntry; @@ -65,7 +65,7 @@ PJ_DEF(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he) static pj_sockaddr_in resolved_addr; // Convert the official address to ANSI. - pj_unicode_to_ansi(nameEntry().iName.Ptr(), nameEntry().iName.Length(), + pj_unicode_to_ansi((const wchar_t*)nameEntry().iName.Ptr(), nameEntry().iName.Length(), resolved_name, sizeof(resolved_name)); // Convert IP address diff --git a/pjlib/src/pj/errno.c b/pjlib/src/pj/errno.c index f82c22d6..f7273a42 100644 --- a/pjlib/src/pj/errno.c +++ b/pjlib/src/pj/errno.c @@ -103,8 +103,7 @@ static int pjlib_error(pj_status_t code, char *buf, pj_size_t size) /* Register strerror handle. */ PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start, pj_status_t space, - pj_str_t (*f)(pj_status_t,char*, - pj_size_t)) + pjsip_error_callback f) { unsigned i; diff --git a/pjlib/src/pj/exception_symbian.cpp b/pjlib/src/pj/exception_symbian.cpp index 1d475335..6f2e0803 100644 --- a/pjlib/src/pj/exception_symbian.cpp +++ b/pjlib/src/pj/exception_symbian.cpp @@ -22,7 +22,6 @@ #include <pj/log.h> #include <pj/errno.h> -static long thread_local_id = -1; #if defined(PJ_HAS_EXCEPTION_NAMES) && PJ_HAS_EXCEPTION_NAMES != 0 static const char *exception_id_names[PJ_MAX_EXCEPTION_ID]; diff --git a/pjlib/src/pj/os_core_symbian.cpp b/pjlib/src/pj/os_core_symbian.cpp index 742fe5ab..a3ec3c04 100644 --- a/pjlib/src/pj/os_core_symbian.cpp +++ b/pjlib/src/pj/os_core_symbian.cpp @@ -301,7 +301,7 @@ on_error: } -PJ_DEF(pj_status_t) pj_atexit(void (*func)(void)) +PJ_DEF(pj_status_t) pj_atexit(pj_exit_callback func) { if (atexit_count >= PJ_ARRAY_SIZE(atexit_func)) return PJ_ETOOMANY; @@ -459,7 +459,7 @@ PJ_DEF(pj_status_t) pj_thread_local_alloc(long *index) */ PJ_DEF(void) pj_thread_local_free(long index) { - PJ_ASSERT_ON_FAIL(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) && + PJ_ASSERT_ON_FAIL(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) && tls_vars[index] != 0, return); tls_vars[index] = 0; @@ -473,7 +473,7 @@ PJ_DEF(pj_status_t) pj_thread_local_set(long index, void *value) { pj_thread_t *rec = pj_thread_this(); - PJ_ASSERT_RETURN(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) && + PJ_ASSERT_RETURN(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) && tls_vars[index] != 0, PJ_EINVAL); rec->tls_values[index] = value; @@ -487,7 +487,7 @@ PJ_DEF(void*) pj_thread_local_get(long index) { pj_thread_t *rec = pj_thread_this(); - PJ_ASSERT_RETURN(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) && + PJ_ASSERT_RETURN(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) && tls_vars[index] != 0, NULL); return rec->tls_values[index]; diff --git a/pjlib/src/pj/sock_symbian.cpp b/pjlib/src/pj/sock_symbian.cpp index ae691bae..38960917 100644 --- a/pjlib/src/pj/sock_symbian.cpp +++ b/pjlib/src/pj/sock_symbian.cpp @@ -271,7 +271,7 @@ PJ_DEF(char*) pj_inet_ntoa(pj_in_addr inaddr) TInetAddr temp_addr((TUint32)pj_ntohl(inaddr.s_addr), (TUint)0); temp_addr.Output(str16); - return pj_unicode_to_ansi(str16.PtrZ(), str16.Length(), + return pj_unicode_to_ansi((const wchar_t*)str16.PtrZ(), str16.Length(), str8, sizeof(str8)); } @@ -307,7 +307,7 @@ PJ_DEF(int) pj_inet_aton(const pj_str_t *cp, struct pj_in_addr *inp) pj_ansi_to_unicode(tempaddr8, pj_ansi_strlen(tempaddr8), tempaddr16, sizeof(tempaddr16)); - TBuf<MAXIPLEN> ip_addr(tempaddr16); + TBuf<MAXIPLEN> ip_addr((const TText*)tempaddr16); TInetAddr addr; addr.Init(KAfInet); @@ -418,7 +418,7 @@ PJ_DEF(const pj_str_t*) pj_gethostname(void) resv.GetHostName(tmpName, reqStatus); User::WaitForRequest(reqStatus); - hostname.ptr = pj_unicode_to_ansi(tmpName.Ptr(), tmpName.Length(), + hostname.ptr = pj_unicode_to_ansi((const wchar_t*)tmpName.Ptr(), tmpName.Length(), buf, sizeof(buf)); hostname.slen = tmpName.Length(); } @@ -551,7 +551,7 @@ PJ_DEF(pj_status_t) pj_sock_getpeername( pj_sock_t sock, PJ_CHECK_STACK(); PJ_ASSERT_RETURN(sock && addr && namelen && - *namelen>=sizeof(pj_sockaddr_in), PJ_EINVAL); + *namelen>=(int)sizeof(pj_sockaddr_in), PJ_EINVAL); CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); @@ -578,7 +578,7 @@ PJ_DEF(pj_status_t) pj_sock_getsockname( pj_sock_t sock, PJ_CHECK_STACK(); PJ_ASSERT_RETURN(sock && addr && namelen && - *namelen>=sizeof(pj_sockaddr_in), PJ_EINVAL); + *namelen>=(int)sizeof(pj_sockaddr_in), PJ_EINVAL); CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); @@ -728,7 +728,7 @@ PJ_DEF(pj_status_t) pj_sock_recvfrom(pj_sock_t sock, PJ_ASSERT_RETURN(sock && buf && len && from && fromlen, PJ_EINVAL); PJ_ASSERT_RETURN(*len > 0, PJ_EINVAL); - PJ_ASSERT_RETURN(*fromlen >= sizeof(pj_sockaddr_in), PJ_EINVAL); + PJ_ASSERT_RETURN(*fromlen >= (int)sizeof(pj_sockaddr_in), PJ_EINVAL); CPjSocket *pjSock = (CPjSocket*)sock; RSocket &rSock = pjSock->Socket(); diff --git a/pjlib/src/pjlib-test/main_symbian.cpp b/pjlib/src/pjlib-test/main_symbian.cpp index c2c808b8..e57b080d 100644 --- a/pjlib/src/pjlib-test/main_symbian.cpp +++ b/pjlib/src/pjlib-test/main_symbian.cpp @@ -51,7 +51,7 @@ LOCAL_C void MainL() // // add your program code here, example code below // - int rc = test_main(); + test_main(); console->Printf(_L(" [press any key]\n")); console->Getch(); diff --git a/pjmedia/src/pjmedia/bidirectional.c b/pjmedia/src/pjmedia/bidirectional.c index 441e895b..a504c737 100644 --- a/pjmedia/src/pjmedia/bidirectional.c +++ b/pjmedia/src/pjmedia/bidirectional.c @@ -54,7 +54,7 @@ PJ_DEF(pj_status_t) pjmedia_bidirectional_port_create( pj_pool_t *pool, { struct bidir_port *port; - port = pj_pool_zalloc(pool, sizeof(struct bidir_port)); + port = PJ_POOL_ZALLOC_T(pool, struct bidir_port); pjmedia_port_info_init(&port->base.info, &get_port->info.name, SIGNATURE, get_port->info.clock_rate, diff --git a/pjmedia/src/pjmedia/echo_common.c b/pjmedia/src/pjmedia/echo_common.c index 5f392ef6..079333b4 100644 --- a/pjmedia/src/pjmedia/echo_common.c +++ b/pjmedia/src/pjmedia/echo_common.c @@ -17,6 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include <pjmedia/config.h> #include <pjmedia/echo.h> #include <pj/assert.h> #include <pj/pool.h> diff --git a/pjmedia/src/pjmedia/nullsound.c b/pjmedia/src/pjmedia/nullsound.c index 2b82bd19..f0c065ee 100644 --- a/pjmedia/src/pjmedia/nullsound.c +++ b/pjmedia/src/pjmedia/nullsound.c @@ -67,7 +67,7 @@ PJ_DEF(int) pjmedia_snd_get_dev_count(void) PJ_DEF(const pjmedia_snd_dev_info*) pjmedia_snd_get_dev_info(unsigned index) { - PJ_ASSERT_RETURN(index==0 || index==-1, NULL); + PJ_ASSERT_RETURN(index==0 || index==(unsigned)-1, NULL); return &null_info; } diff --git a/pjsip-apps/src/samples/sndinfo.c b/pjsip-apps/src/samples/sndinfo.c index d7815c25..78521451 100644 --- a/pjsip-apps/src/samples/sndinfo.c +++ b/pjsip-apps/src/samples/sndinfo.c @@ -256,7 +256,6 @@ int main(int argc, char *argv[]) if (argc == 1) { enum_devices(); - return 0; } else if (argc == 6) { int dev_id; diff --git a/pjsip/include/pjsip/sip_transport.h b/pjsip/include/pjsip/sip_transport.h index 5137ef70..aadd51ea 100644 --- a/pjsip/include/pjsip/sip_transport.h +++ b/pjsip/include/pjsip/sip_transport.h @@ -605,7 +605,8 @@ PJ_DECL(pj_status_t) pjsip_tx_data_set_transport(pjsip_tx_data *tdata, * TRANSPORT * *****************************************************************************/ - +typedef void (*pjsip_transport_callback)(pjsip_transport *tp, void *token, + pj_ssize_t sent_bytes); /** * This structure represent the "public" interface of a SIP transport. * Applications normally extend this structure to include transport @@ -671,9 +672,7 @@ struct pjsip_transport const pj_sockaddr_t *rem_addr, int addr_len, void *token, - void (*callback)(pjsip_transport *transport, - void *token, - pj_ssize_t sent_bytes)); + pjsip_transport_callback callback); /** * Instruct the transport to initiate graceful shutdown procedure. @@ -884,7 +883,8 @@ PJ_DECL(pj_status_t) pjsip_tpmgr_unregister_tpfactory(pjsip_tpmgr *mgr, * TRANSPORT MANAGER * *****************************************************************************/ - +typedef void (*pjsip_rx_callback)(pjsip_endpoint*, pj_status_t, pjsip_rx_data *); +typedef pj_status_t (*pjsip_tx_callback)(pjsip_endpoint*, pjsip_tx_data*); /** * Create a new transport manager. * @@ -899,11 +899,8 @@ PJ_DECL(pj_status_t) pjsip_tpmgr_unregister_tpfactory(pjsip_tpmgr *mgr, */ PJ_DECL(pj_status_t) pjsip_tpmgr_create( pj_pool_t *pool, pjsip_endpoint * endpt, - void (*rx_cb)(pjsip_endpoint*, - pj_status_t, - pjsip_rx_data *), - pj_status_t (*tx_cb)(pjsip_endpoint*, - pjsip_tx_data*), + pjsip_rx_callback rx_cb, + pjsip_tx_callback tx_cb, pjsip_tpmgr **p_mgr); @@ -987,7 +984,8 @@ PJ_DECL(pj_status_t) pjsip_tpmgr_acquire_transport(pjsip_tpmgr *mgr, const pjsip_tpselector *sel, pjsip_transport **tp); - +typedef void (*pjsip_tp_send_callback)(void *token, pjsip_tx_data *tdata, + pj_ssize_t bytes_sent); /** * Send a SIP message using the specified transport. */ @@ -996,9 +994,7 @@ PJ_DECL(pj_status_t) pjsip_transport_send( pjsip_transport *tr, const pj_sockaddr_t *addr, int addr_len, void *token, - void (*cb)(void *token, - pjsip_tx_data *tdata, - pj_ssize_t bytes_sent)); + pjsip_tp_send_callback cb); /** diff --git a/pjsip/include/pjsip/sip_util.h b/pjsip/include/pjsip/sip_util.h index 62fb847c..18c1ce7b 100644 --- a/pjsip/include/pjsip/sip_util.h +++ b/pjsip/include/pjsip/sip_util.h @@ -258,6 +258,8 @@ typedef struct pjsip_send_state pj_bool_t *cont); } pjsip_send_state; +typedef void (*pjsip_endpt_callback)(pjsip_send_state*, pj_ssize_t sent, + pj_bool_t *cont); /** * Send outgoing request statelessly The function will take care of which * destination and transport to use based on the information in the message, @@ -279,9 +281,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_request_stateless( pjsip_endpoint *endpt, pjsip_tx_data *tdata, void *token, - void (*cb)(pjsip_send_state*, - pj_ssize_t sent, - pj_bool_t *cont)); + pjsip_endpt_callback cb); /** * This structure describes destination information to send response. @@ -357,9 +357,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_response( pjsip_endpoint *endpt, pjsip_response_addr *res_addr, pjsip_tx_data *tdata, void *token, - void (*cb)(pjsip_send_state*, - pj_ssize_t sent, - pj_bool_t *cont)); + pjsip_endpt_callback cb); /** * This is a convenient function which wraps #pjsip_get_response_addr() and @@ -382,9 +380,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_response2(pjsip_endpoint *endpt, pjsip_rx_data *rdata, pjsip_tx_data *tdata, void *token, - void (*cb)(pjsip_send_state*, - pj_ssize_t sent, - pj_bool_t *cont)); + pjsip_endpt_callback cb); /** * This composite function sends response message statelessly to an incoming @@ -445,6 +441,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_respond( pjsip_endpoint *endpt, const pjsip_msg_body *body, pjsip_transaction **p_tsx ); +typedef void (*pjsip_endpt_send_callback)(void*, pjsip_event*); /** * Send outgoing request and initiate UAC transaction for the request. * This is an auxiliary function to be used by application to send arbitrary @@ -469,7 +466,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_request( pjsip_endpoint *endpt, pjsip_tx_data *tdata, pj_int32_t timeout, void *token, - void (*cb)(void*,pjsip_event*)); + pjsip_endpt_send_callback cb); /** * @} diff --git a/pjsip/src/pjsip/sip_parser.c b/pjsip/src/pjsip/sip_parser.c index 644532ec..32a511cc 100644 --- a/pjsip/src/pjsip/sip_parser.c +++ b/pjsip/src/pjsip/sip_parser.c @@ -908,6 +908,7 @@ static pjsip_msg *int_parse_msg( pjsip_parse_ctx *ctx, parsing_headers = PJ_FALSE; +retry_parse: PJ_TRY { if (parsing_headers) @@ -1054,7 +1055,7 @@ parse_headers: /* Continue parse next header, if any. */ if (!pj_scan_is_eof(scanner) && !IS_NEWLINE(*scanner->curptr)) { - goto parse_headers; + goto retry_parse; } } diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c index 91ac4343..49afe464 100644 --- a/pjsip/src/pjsip/sip_transport.c +++ b/pjsip/src/pjsip/sip_transport.c @@ -548,9 +548,7 @@ PJ_DEF(pj_status_t) pjsip_transport_send( pjsip_transport *tr, const pj_sockaddr_t *addr, int addr_len, void *token, - void (*cb)(void *token, - pjsip_tx_data *tdata, - pj_ssize_t)) + pjsip_tp_send_callback cb) { pj_status_t status; @@ -883,11 +881,8 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_unregister_tpfactory( pjsip_tpmgr *mgr, */ PJ_DEF(pj_status_t) pjsip_tpmgr_create( pj_pool_t *pool, pjsip_endpoint *endpt, - void (*rx_cb)(pjsip_endpoint*, - pj_status_t, - pjsip_rx_data *), - pj_status_t (*tx_cb)(pjsip_endpoint*, - pjsip_tx_data*), + pjsip_rx_callback rx_cb, + pjsip_tx_callback tx_cb, pjsip_tpmgr **p_mgr) { pjsip_tpmgr *mgr; diff --git a/pjsip/src/pjsip/sip_transport_loop.c b/pjsip/src/pjsip/sip_transport_loop.c index 25121978..d49fb3b3 100644 --- a/pjsip/src/pjsip/sip_transport_loop.c +++ b/pjsip/src/pjsip/sip_transport_loop.c @@ -145,9 +145,7 @@ static pj_status_t loop_send_msg( pjsip_transport *tp, const pj_sockaddr_t *rem_addr, int addr_len, void *token, - void (*cb)(pjsip_transport *transport, - void *token, - pj_ssize_t sent_bytes)) + pjsip_transport_callback cb) { struct loop_transport *loop = (struct loop_transport*)tp; struct recv_list *recv_pkt; diff --git a/pjsip/src/pjsip/sip_transport_tcp.c b/pjsip/src/pjsip/sip_transport_tcp.c index 70008a78..40ec04bd 100644 --- a/pjsip/src/pjsip/sip_transport_tcp.c +++ b/pjsip/src/pjsip/sip_transport_tcp.c @@ -449,9 +449,7 @@ static pj_status_t tcp_send_msg(pjsip_transport *transport, const pj_sockaddr_t *rem_addr, int addr_len, void *token, - void (*callback)(pjsip_transport *transport, - void *token, - pj_ssize_t sent_bytes)); + pjsip_transport_callback callback); /* Called by transport manager to shutdown */ static pj_status_t tcp_shutdown(pjsip_transport *transport); @@ -1038,9 +1036,7 @@ static pj_status_t tcp_send_msg(pjsip_transport *transport, const pj_sockaddr_t *rem_addr, int addr_len, void *token, - void (*callback)(pjsip_transport *transport, - void *token, - pj_ssize_t sent_bytes)) + pjsip_transport_callback callback) { struct tcp_transport *tcp = (struct tcp_transport*)transport; pj_ssize_t size; @@ -1252,7 +1248,7 @@ static void on_read_complete(pj_ioqueue_key_t *key, /* Read next packet. */ bytes_read = sizeof(rdata->pkt_info.packet) - rdata->pkt_info.len; - rdata->pkt_info.src_addr_len = sizeof(rdata->pkt_info.src_addr); + rdata->pkt_info.src_addr_len = sizeof(pj_sockaddr_in); status = pj_ioqueue_recv(key, op_key, rdata->pkt_info.packet+rdata->pkt_info.len, &bytes_read, flags); diff --git a/pjsip/src/pjsip/sip_transport_udp.c b/pjsip/src/pjsip/sip_transport_udp.c index 02b86fbb..48da26f9 100644 --- a/pjsip/src/pjsip/sip_transport_udp.c +++ b/pjsip/src/pjsip/sip_transport_udp.c @@ -286,9 +286,7 @@ static pj_status_t udp_send_msg( pjsip_transport *transport, const pj_sockaddr_t *rem_addr, int addr_len, void *token, - void (*callback)(pjsip_transport*, - void *token, - pj_ssize_t)) + pjsip_transport_callback callback) { struct udp_transport *tp = (struct udp_transport*)transport; pj_ssize_t size; diff --git a/pjsip/src/pjsip/sip_util.c b/pjsip/src/pjsip/sip_util.c index f0292be0..a611fe97 100644 --- a/pjsip/src/pjsip/sip_util.c +++ b/pjsip/src/pjsip/sip_util.c @@ -1005,9 +1005,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_request_stateless(pjsip_endpoint *endpt, pjsip_tx_data *tdata, void *token, - void (*cb)(pjsip_send_state*, - pj_ssize_t sent, - pj_bool_t *cont)) + pjsip_endpt_callback cb) { pjsip_host_info dest_info; pjsip_send_state *stateless_data; @@ -1226,9 +1224,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_response( pjsip_endpoint *endpt, pjsip_response_addr *res_addr, pjsip_tx_data *tdata, void *token, - void (*cb)(pjsip_send_state*, - pj_ssize_t sent, - pj_bool_t *cont)) + pjsip_endpt_callback cb) { /* Determine which transports and addresses to send the response, * based on Section 18.2.2 of RFC 3261. @@ -1277,9 +1273,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_response2( pjsip_endpoint *endpt, pjsip_rx_data *rdata, pjsip_tx_data *tdata, void *token, - void (*cb)(pjsip_send_state*, - pj_ssize_t sent, - pj_bool_t *cont)) + pjsip_endpt_callback cb) { pjsip_response_addr res_addr; pj_status_t status; diff --git a/pjsip/src/pjsip/sip_util_statefull.c b/pjsip/src/pjsip/sip_util_statefull.c index 129a13cd..94ab4477 100644 --- a/pjsip/src/pjsip/sip_util_statefull.c +++ b/pjsip/src/pjsip/sip_util_statefull.c @@ -83,7 +83,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_request( pjsip_endpoint *endpt, pjsip_tx_data *tdata, pj_int32_t timeout, void *token, - void (*cb)(void*,pjsip_event*)) + pjsip_endpt_send_callback cb) { pjsip_transaction *tsx; struct tsx_data *tsx_data; |