updated pjsip stack
There is still a bug on incoming calls when buiding for android
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/alsa_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/alsa_dev.c
index 31b3b06..efda319 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/alsa_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/alsa_dev.c
@@ -1,4 +1,4 @@
-/* $Id: alsa_dev.c 4283 2012-10-12 06:19:32Z ming $ */
+/* $Id$ */
/*
* Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2007-2009 Keystream AB and Konftel AB, All rights reserved.
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/android_jni_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/android_jni_dev.c
index 6025c8c..255663a 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/android_jni_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/android_jni_dev.c
@@ -1,4 +1,4 @@
-/* $Id: android_jni_dev.c 4435 2013-03-11 06:32:58Z nanang $ */
+/* $Id$ */
/*
* Copyright (C) 2012-2012 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/audiodev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/audiodev.c
index c5cad7e..4ccce9f 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/audiodev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/audiodev.c
@@ -1,4 +1,4 @@
-/* $Id: audiodev.c 4435 2013-03-11 06:32:58Z nanang $ */
+/* $Id$ */
/*
* 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/pjmedia/src/pjmedia-audiodev/audiotest.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/audiotest.c
index 82893f5..e874d56 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/audiotest.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/audiotest.c
@@ -1,4 +1,4 @@
-/* $Id: audiotest.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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/pjmedia/src/pjmedia-audiodev/bb10_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/bb10_dev.c
index 91158b9..f1ad9a1 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/bb10_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/bb10_dev.c
@@ -1,4 +1,4 @@
-/* $Id: bb10_dev.c 4512 2013-04-30 09:00:36Z bennylp $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2012 Teluu Inc. (http://www.teluu.com)
*
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/coreaudio_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/coreaudio_dev.c
index 725df40..3248f61 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/coreaudio_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/coreaudio_dev.c
@@ -1,4 +1,4 @@
-/* $Id: coreaudio_dev.c 4527 2013-05-29 03:53:15Z ming $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
*
@@ -50,6 +50,12 @@
*/
#define USE_AUDIO_ROUTE_CHANGE_PROP_LISTENER 0
+ /* Starting iOS SDK 7, Audio Session API is deprecated. */
+ #ifdef __IPHONE_7_0
+ #define USE_AUDIO_SESSION_API 0
+ #else
+ #define USE_AUDIO_SESSION_API 1
+ #endif
#endif
/* For Mac OS 10.5.x and earlier */
@@ -176,7 +182,7 @@
pjmedia_dir dir,
struct coreaudio_stream *strm,
AudioUnit *io_unit);
-#if !COREAUDIO_MAC
+#if !COREAUDIO_MAC && USE_AUDIO_SESSION_API != 0
static void interruptionListener(void *inClientData, UInt32 inInterruption);
static void propListener(void * inClientData,
AudioSessionPropertyID inID,
@@ -236,7 +242,6 @@
pj_status_t status;
#if !COREAUDIO_MAC
unsigned i;
- OSStatus ostatus;
#endif
pj_list_init(&cf->streams);
@@ -283,6 +288,7 @@
cdi->info.default_samples_per_sec = 8000;
/* Set the device capabilities here */
+#if USE_AUDIO_SESSION_API != 0
cdi->info.caps = PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY |
PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY |
PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING |
@@ -292,6 +298,9 @@
cdi->info.routes = PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER |
PJMEDIA_AUD_DEV_ROUTE_EARPIECE |
PJMEDIA_AUD_DEV_ROUTE_BLUETOOTH;
+#else
+ cdi->info.caps = PJMEDIA_AUD_DEV_CAP_EC;
+#endif
PJ_LOG(4, (THIS_FILE, " dev_id %d: %s (in=%d, out=%d) %dHz",
i,
@@ -301,23 +310,30 @@
cdi->info.default_samples_per_sec));
}
- /* Initialize the Audio Session */
- ostatus = AudioSessionInitialize(NULL, NULL, interruptionListener, NULL);
- if (ostatus != kAudioSessionNoError) {
- PJ_LOG(4, (THIS_FILE,
- "Warning: cannot initialize audio session services (%i)",
- ostatus));
- }
+#if USE_AUDIO_SESSION_API != 0
+ {
+ OSStatus ostatus;
- /* Listen for audio routing change notifications. */
+ /* Initialize the Audio Session */
+ ostatus = AudioSessionInitialize(NULL, NULL, interruptionListener,
+ NULL);
+ if (ostatus != kAudioSessionNoError) {
+ PJ_LOG(4, (THIS_FILE,
+ "Warning: cannot initialize audio session services (%i)",
+ ostatus));
+ }
+
+ /* Listen for audio routing change notifications. */
#if USE_AUDIO_ROUTE_CHANGE_PROP_LISTENER != 0
- ostatus = AudioSessionAddPropertyListener(
- kAudioSessionProperty_AudioRouteChange,
- propListener, cf);
- if (ostatus != kAudioSessionNoError) {
- PJ_LOG(4, (THIS_FILE,
- "Warning: cannot listen for audio route change "
- "notifications (%i)", ostatus));
+ ostatus = AudioSessionAddPropertyListener(
+ kAudioSessionProperty_AudioRouteChange,
+ propListener, cf);
+ if (ostatus != kAudioSessionNoError) {
+ PJ_LOG(4, (THIS_FILE,
+ "Warning: cannot listen for audio route change "
+ "notifications (%i)", ostatus));
+ }
+#endif
}
#endif
@@ -340,7 +356,7 @@
pj_assert(pj_list_empty(&cf->streams));
#if !COREAUDIO_MAC
-#if USE_AUDIO_ROUTE_CHANGE_PROP_LISTENER != 0
+#if USE_AUDIO_SESSION_API != 0 && USE_AUDIO_ROUTE_CHANGE_PROP_LISTENER != 0
AudioSessionRemovePropertyListenerWithUserData(
kAudioSessionProperty_AudioRouteChange, propListener, cf);
#endif
@@ -1058,7 +1074,7 @@
return -1;
}
-#if !COREAUDIO_MAC
+#if !COREAUDIO_MAC && USE_AUDIO_SESSION_API != 0
static void propListener(void *inClientData,
AudioSessionPropertyID inID,
UInt32 inDataSize,
@@ -1223,7 +1239,7 @@
AudioUnit *io_unit)
{
OSStatus ostatus;
-#if !COREAUDIO_MAC
+#if !COREAUDIO_MAC && USE_AUDIO_SESSION_API != 0
UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;
/* We want to be able to open playback and recording streams */
ostatus = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
@@ -1699,7 +1715,7 @@
strm->param.input_latency_ms++;
}
}
-#else
+#elif USE_AUDIO_SESSION_API != 0
Float32 latency, latency2;
UInt32 size = sizeof(Float32);
@@ -1747,7 +1763,7 @@
strm->param.output_latency_ms++;
}
}
-#else
+#elif USE_AUDIO_SESSION_API != 0
Float32 latency, latency2;
UInt32 size = sizeof(Float32);
@@ -1765,6 +1781,7 @@
#endif
*(unsigned*)pval = (++strm->param.output_latency_ms * 2);
return PJ_SUCCESS;
+#if COREAUDIO_MAC || USE_AUDIO_SESSION_API != 0
} else if (cap==PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING &&
(strm->param.dir & PJMEDIA_DIR_PLAYBACK))
{
@@ -1783,7 +1800,7 @@
&size);
if (ostatus != noErr)
return PJMEDIA_AUDIODEV_ERRNO_FROM_COREAUDIO(ostatus);
-#else
+#elif USE_AUDIO_SESSION_API != 0
ostatus = AudioSessionGetProperty(
kAudioSessionProperty_CurrentHardwareOutputVolume,
&size, &volume);
@@ -1794,7 +1811,10 @@
*(unsigned*)pval = (unsigned)(volume * 100);
return PJ_SUCCESS;
+#endif
+
#if !COREAUDIO_MAC
+#if USE_AUDIO_SESSION_API != 0
} else if (cap==PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE &&
(strm->param.dir & PJMEDIA_DIR_CAPTURE))
{
@@ -1836,6 +1856,7 @@
CFRelease(route);
return PJ_SUCCESS;
+#endif
} else if (cap==PJMEDIA_AUD_DEV_CAP_EC) {
AudioComponentDescription desc;
OSStatus ostatus;
@@ -1887,8 +1908,35 @@
}
#else
+ if (cap==PJMEDIA_AUD_DEV_CAP_EC) {
+ AudioComponentDescription desc;
+ AudioComponent io_comp;
+
+ desc.componentType = kAudioUnitType_Output;
+ desc.componentSubType = (*(pj_bool_t*)pval)?
+ kAudioUnitSubType_VoiceProcessingIO :
+ kAudioUnitSubType_RemoteIO;
+ desc.componentManufacturer = kAudioUnitManufacturer_Apple;
+ desc.componentFlags = 0;
+ desc.componentFlagsMask = 0;
+
+ io_comp = AudioComponentFindNext(NULL, &desc);
+ if (io_comp == NULL)
+ return PJMEDIA_AUDIODEV_ERRNO_FROM_COREAUDIO(-1);
+ strm->cf->io_comp = io_comp;
+ strm->param.ec_enabled = *(pj_bool_t*)pval;
+
+ PJ_LOG(4, (THIS_FILE, "Using %s audio unit",
+ (desc.componentSubType ==
+ kAudioUnitSubType_RemoteIO? "RemoteIO":
+ "VoiceProcessingIO")));
+
+ return PJ_SUCCESS;
+ }
- if ((cap==PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY &&
+#if USE_AUDIO_SESSION_API != 0
+
+ else if ((cap==PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY &&
(strm->param.dir & PJMEDIA_DIR_CAPTURE)) ||
(cap==PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY &&
(strm->param.dir & PJMEDIA_DIR_PLAYBACK)))
@@ -1948,32 +1996,9 @@
}
strm->param.output_route = *(pjmedia_aud_dev_route*)pval;
return PJ_SUCCESS;
- } else if (cap==PJMEDIA_AUD_DEV_CAP_EC) {
- AudioComponentDescription desc;
- AudioComponent io_comp;
-
- desc.componentType = kAudioUnitType_Output;
- desc.componentSubType = (*(pj_bool_t*)pval)?
- kAudioUnitSubType_VoiceProcessingIO :
- kAudioUnitSubType_RemoteIO;
- desc.componentManufacturer = kAudioUnitManufacturer_Apple;
- desc.componentFlags = 0;
- desc.componentFlagsMask = 0;
-
- io_comp = AudioComponentFindNext(NULL, &desc);
- if (io_comp == NULL)
- return PJMEDIA_AUDIODEV_ERRNO_FROM_COREAUDIO(-1);
- strm->cf->io_comp = io_comp;
- strm->param.ec_enabled = *(pj_bool_t*)pval;
-
- PJ_LOG(4, (THIS_FILE, "Using %s audio unit",
- (desc.componentSubType ==
- kAudioUnitSubType_RemoteIO? "RemoteIO":
- "VoiceProcessingIO")));
-
- return PJ_SUCCESS;
}
#endif
+#endif
return PJMEDIA_EAUD_INVCAP;
}
@@ -2000,7 +2025,7 @@
return PJMEDIA_AUDIODEV_ERRNO_FROM_COREAUDIO(ostatus);
}
-#if !COREAUDIO_MAC
+#if !COREAUDIO_MAC && USE_AUDIO_SESSION_API != 0
AudioSessionSetActive(true);
#endif
@@ -2058,7 +2083,7 @@
}
pj_mutex_unlock(stream->cf->mutex);
-#if !COREAUDIO_MAC
+#if !COREAUDIO_MAC && USE_AUDIO_SESSION_API != 0
if (should_deactivate)
AudioSessionSetActive(false);
#endif
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/errno.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/errno.c
index 5e93af8..a928485 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/errno.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/errno.c
@@ -1,4 +1,4 @@
-/* $Id: errno.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
*
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/legacy_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/legacy_dev.c
index 45c6c5d..c189698 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/legacy_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/legacy_dev.c
@@ -1,4 +1,4 @@
-/* $Id: legacy_dev.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
*
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/null_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/null_dev.c
index 6426641..01f1051 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/null_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/null_dev.c
@@ -1,4 +1,4 @@
-/* $Id: null_dev.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
*
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/opensl_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/opensl_dev.c
index 31d77f3..a77340b 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/opensl_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/opensl_dev.c
@@ -1,4 +1,4 @@
-/* $Id: opensl_dev.c 4435 2013-03-11 06:32:58Z nanang $ */
+/* $Id$ */
/*
* Copyright (C) 2012-2012 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/pa_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/pa_dev.c
index fb745a9..bfaa5b5 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/pa_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/pa_dev.c
@@ -1,4 +1,4 @@
-/* $Id: pa_dev.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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/pjmedia/src/pjmedia-audiodev/symb_aps_dev.cpp b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_aps_dev.cpp
index 9b60ae1..6ff0856 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_aps_dev.cpp
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_aps_dev.cpp
@@ -1,4 +1,4 @@
-/* $Id: symb_aps_dev.cpp 4243 2012-08-31 11:42:17Z nanang $ */
+/* $Id$ */
/*
* 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/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp
index b4a6b9c..645ed39 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp
@@ -1,4 +1,4 @@
-/* $Id: symb_mda_dev.cpp 3841 2011-10-24 09:28:13Z ming $ */
+/* $Id$ */
/*
* 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/pjmedia/src/pjmedia-audiodev/symb_vas_dev.cpp b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_vas_dev.cpp
index 70fe3b3..ca421d2 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_vas_dev.cpp
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/symb_vas_dev.cpp
@@ -1,4 +1,4 @@
-/* $Id: symb_vas_dev.cpp 4243 2012-08-31 11:42:17Z nanang $ */
+/* $Id$ */
/*
* Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
*
diff --git a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/wmme_dev.c b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/wmme_dev.c
index 4ae4835..a73f247 100644
--- a/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/wmme_dev.c
+++ b/jni/pjproject-android/pjmedia/src/pjmedia-audiodev/wmme_dev.c
@@ -1,4 +1,4 @@
-/* $Id: wmme_dev.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>