* #39101: updated pjsip stack, many android build enhancements.
The main issue here is due to the build system of the stack compared to a pure Android
NDK project. Generating arm and x86 ABI at the same time does not seem to be possible.
diff --git a/jni/pjproject-android/pjlib/build/os-auto.mak.in b/jni/pjproject-android/pjlib/build/os-auto.mak.in
index 3f35dce..1c7e330 100644
--- a/jni/pjproject-android/pjlib/build/os-auto.mak.in
+++ b/jni/pjproject-android/pjlib/build/os-auto.mak.in
@@ -23,7 +23,8 @@
#
# Additional LDFLAGS for pjlib-test
#
-export TEST_LDFLAGS += @LDFLAGS@ @LIBS@
+# Disabled, as this causes duplicated LDFLAGS, which may raise linking errors
+#export TEST_LDFLAGS += @LDFLAGS@ @LIBS@
#
# TARGETS are make targets in the Makefile, to be executed for this given
diff --git a/jni/pjproject-android/pjlib/include/pj/compat/cc_gcc.h b/jni/pjproject-android/pjlib/include/pj/compat/cc_gcc.h
index 1d62ff7..1011728 100644
--- a/jni/pjproject-android/pjlib/include/pj/compat/cc_gcc.h
+++ b/jni/pjproject-android/pjlib/include/pj/compat/cc_gcc.h
@@ -1,4 +1,4 @@
-/* $Id: cc_gcc.h 4624 2013-10-21 06:37:30Z ming $ */
+/* $Id: cc_gcc.h 4704 2014-01-16 05:30:46Z ming $ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -63,7 +63,7 @@
#endif
#define PJ_INT64(val) val##LL
-#define PJ_UINT64(val) val##LLU
+#define PJ_UINT64(val) val##ULL
#define PJ_INT64_FMT "L"
diff --git a/jni/pjproject-android/pjlib/include/pj/string.h b/jni/pjproject-android/pjlib/include/pj/string.h
index 849a474..20be005 100644
--- a/jni/pjproject-android/pjlib/include/pj/string.h
+++ b/jni/pjproject-android/pjlib/include/pj/string.h
@@ -1,4 +1,4 @@
-/* $Id: string.h 4440 2013-03-14 07:18:13Z riza $ */
+/* $Id: string.h 4704 2014-01-16 05:30:46Z ming $ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -575,6 +575,15 @@
unsigned base);
/**
+ * Convert string to float.
+ *
+ * @param str the string.
+ *
+ * @return the value.
+ */
+PJ_DECL(float) pj_strtof(const pj_str_t *str);
+
+/**
* Utility to convert unsigned integer to string. Note that the
* string will be NULL terminated.
*
diff --git a/jni/pjproject-android/pjlib/include/pj/types.h b/jni/pjproject-android/pjlib/include/pj/types.h
index 230175a..a592703 100644
--- a/jni/pjproject-android/pjlib/include/pj/types.h
+++ b/jni/pjproject-android/pjlib/include/pj/types.h
@@ -1,4 +1,4 @@
-/* $Id: types.h 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id: types.h 4704 2014-01-16 05:30:46Z ming $ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -86,15 +86,18 @@
# define PJ_T(literal_str) literal_str
#endif
+/** Some constants */
+enum pj_constants_
+{
+ /** Status is OK. */
+ PJ_SUCCESS=0,
-/** Status is OK. */
-#define PJ_SUCCESS 0
+ /** True value. */
+ PJ_TRUE=1,
-/** True value. */
-#define PJ_TRUE 1
-
-/** False value. */
-#define PJ_FALSE 0
+ /** False value. */
+ PJ_FALSE=0
+};
/**
* File offset type.
diff --git a/jni/pjproject-android/pjlib/src/pj/ioqueue_epoll.c b/jni/pjproject-android/pjlib/src/pj/ioqueue_epoll.c
index eea57a9..85186dd 100644
--- a/jni/pjproject-android/pjlib/src/pj/ioqueue_epoll.c
+++ b/jni/pjproject-android/pjlib/src/pj/ioqueue_epoll.c
@@ -1,4 +1,4 @@
-/* $Id: ioqueue_epoll.c 4528 2013-05-30 07:01:11Z ming $ */
+/* $Id: ioqueue_epoll.c 4704 2014-01-16 05:30:46Z ming $ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjlib/src/pj/string.c b/jni/pjproject-android/pjlib/src/pj/string.c
index 22c3fde..decd58f 100644
--- a/jni/pjproject-android/pjlib/src/pj/string.c
+++ b/jni/pjproject-android/pjlib/src/pj/string.c
@@ -1,4 +1,4 @@
-/* $Id: string.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id: string.c 4704 2014-01-16 05:30:46Z ming $ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -175,6 +175,44 @@
return value;
}
+PJ_DEF(float) pj_strtof(const pj_str_t *str)
+{
+ pj_str_t part;
+ char *pdot;
+ float val;
+
+ if (str->slen == 0)
+ return 0;
+
+ pdot = (char*)pj_memchr(str->ptr, '.', str->slen);
+ part.ptr = str->ptr;
+ part.slen = pdot ? pdot - str->ptr : str->slen;
+
+ if (part.slen)
+ val = (float)pj_strtol(&part);
+ else
+ val = 0;
+
+ if (pdot) {
+ part.ptr = pdot + 1;
+ part.slen = (str->ptr + str->slen - pdot - 1);
+ if (part.slen) {
+ pj_str_t endptr;
+ float fpart, fdiv;
+ int i;
+ fpart = (float)pj_strtoul2(&part, &endptr, 10);
+ fdiv = 1.0;
+ for (i=0; i<(part.slen - endptr.slen); ++i)
+ fdiv = fdiv * 10;
+ if (val >= 0)
+ val += (fpart / fdiv);
+ else
+ val -= (fpart / fdiv);
+ }
+ }
+ return val;
+}
+
PJ_DEF(int) pj_utoa(unsigned long val, char *buf)
{
return pj_utoa_pad(val, buf, 0, 0);