summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-05-06 15:37:47 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-05-06 15:37:47 +0000
commitafdc3f91f455e233cb1944cc593d25c7b47afb79 (patch)
treee764c15b95131d43d914dcaeecc9778ecfe50a8f
parent6050ee100f593585850bf1ead5b02cc1f565b155 (diff)
Ticket #818:
- Added libresample.mmp - Modified config_site_sample.h to enable resampling with small filter on Symbian platforms. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2676 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--build.symbian/bld.inf3
-rw-r--r--build.symbian/libresample.mmp25
-rw-r--r--build.symbian/pjmedia.mmp1
-rw-r--r--build.symbian/symbian_ua.mmp1
-rw-r--r--pjlib/include/pj/config_site_sample.h19
-rw-r--r--pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp1
-rw-r--r--third_party/build/resample/config.h8
7 files changed, 52 insertions, 6 deletions
diff --git a/build.symbian/bld.inf b/build.symbian/bld.inf
index 5df18000..f8dd3602 100644
--- a/build.symbian/bld.inf
+++ b/build.symbian/bld.inf
@@ -23,6 +23,9 @@ libspeexcodec.mmp
libg7221codec.mmp
libpassthroughcodec.mmp
+/* Resample */
+libresample.mmp
+
/* Audio device. */
pjmedia_audiodev.mmp
diff --git a/build.symbian/libresample.mmp b/build.symbian/libresample.mmp
new file mode 100644
index 00000000..14987146
--- /dev/null
+++ b/build.symbian/libresample.mmp
@@ -0,0 +1,25 @@
+TARGET libresample.lib
+TARGETTYPE lib
+
+SOURCEPATH ..\third_party\resample\src
+
+//
+// GCCE optimization setting
+//
+OPTION GCCE -O2 -fno-unit-at-a-time
+
+MACRO PJ_M_I386=1
+MACRO PJ_SYMBIAN=1
+
+MACRO RESAMPLE_HAS_SMALL_FILTER=1
+MACRO RESAMPLE_HAS_LARGE_FILTER=0
+
+SOURCE resamplesubs.c
+
+SYSTEMINCLUDE ..\third_party\resample\include
+SYSTEMINCLUDE ..\third_party\build\resample
+
+SYSTEMINCLUDE \epoc32\include
+SYSTEMINCLUDE \epoc32\include\libc
+
+
diff --git a/build.symbian/pjmedia.mmp b/build.symbian/pjmedia.mmp
index 6c48b6c4..a712f610 100644
--- a/build.symbian/pjmedia.mmp
+++ b/build.symbian/pjmedia.mmp
@@ -98,6 +98,7 @@ SYSTEMINCLUDE ..\pjnath\include
SYSTEMINCLUDE ..\third_party\srtp\include
SYSTEMINCLUDE ..\third_party\srtp\crypto\include
SYSTEMINCLUDE ..\third_party\build\srtp
+SYSTEMINCLUDE ..
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE \epoc32\include\libc
diff --git a/build.symbian/symbian_ua.mmp b/build.symbian/symbian_ua.mmp
index 96a2cc33..1473486d 100644
--- a/build.symbian/symbian_ua.mmp
+++ b/build.symbian/symbian_ua.mmp
@@ -44,6 +44,7 @@ STATICLIBRARY pjsdp.lib
STATICLIBRARY pjnath.lib
STATICLIBRARY pjlib_util.lib pjlib.lib
STATICLIBRARY libsrtp.lib
+STATICLIBRARY libresample.lib
#if SND_HAS_APS
LIBRARY APSSession2.lib
diff --git a/pjlib/include/pj/config_site_sample.h b/pjlib/include/pj/config_site_sample.h
index 9336221e..efcd419a 100644
--- a/pjlib/include/pj/config_site_sample.h
+++ b/pjlib/include/pj/config_site_sample.h
@@ -133,8 +133,17 @@
/* For CPU reason, disable speex AEC and use the echo suppressor. */
#define PJMEDIA_HAS_SPEEX_AEC 0
- /* Shouldn't use resampling for performance reason too. */
- #define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE
+ /* Previously, resampling is disabled due to performance reason and
+ * this condition prevented some 'light' wideband codecs (e.g: G722.1)
+ * to work along with narrowband codecs. Lately, some tests showed
+ * that 16kHz <-> 8kHz resampling using libresample small filter was
+ * affordable on ARM9 222 MHz, so here we decided to enable resampling.
+ * Note that it is important to make sure that libresample is created
+ * using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must
+ * be set to 3 or 4 so pjsua-lib will apply small filter resampling.
+ */
+ //#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE
+ #define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE
/* Use the lighter WSOLA implementation */
#define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE
@@ -172,8 +181,10 @@
* PJSUA settings.
*/
- /* Default codec quality */
- #define PJSUA_DEFAULT_CODEC_QUALITY 5
+ /* Default codec quality, previously was set to 5, however it is now
+ * set to 4 to make sure pjsua instantiates resampler with small filter.
+ */
+ #define PJSUA_DEFAULT_CODEC_QUALITY 4
/* Set maximum number of dialog/transaction/calls to minimum */
#define PJSIP_MAX_TSX_COUNT 31
diff --git a/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp b/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
index 7d4466e6..1c508d02 100644
--- a/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
+++ b/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
@@ -45,6 +45,7 @@ STATICLIBRARY libsrtp.lib
STATICLIBRARY libgsmcodec.lib
STATICLIBRARY libspeexcodec.lib
STATICLIBRARY libg7221codec.lib
+STATICLIBRARY libresample.lib
#if SND_USE_NULL
diff --git a/third_party/build/resample/config.h b/third_party/build/resample/config.h
index fde89374..634fb6ad 100644
--- a/third_party/build/resample/config.h
+++ b/third_party/build/resample/config.h
@@ -1,3 +1,7 @@
-#define RESAMPLE_HAS_SMALL_FILTER 1
-#define RESAMPLE_HAS_LARGE_FILTER 1
+#ifndef RESAMPLE_HAS_SMALL_FILTER
+# define RESAMPLE_HAS_SMALL_FILTER 1
+#endif
+#ifndef RESAMPLE_HAS_LARGE_FILTER
+# define RESAMPLE_HAS_LARGE_FILTER 1
+#endif