From 9b4cf1b9c133fa0bb811e2d03cafafc7ece0dde0 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Wed, 29 May 2019 09:12:25 +0300 Subject: [PATCH] - Added Internet Low Bitrate Codec (iLBC). - Improved account's codec selection. --- app/src/main/assets/config | 5 +++-- app/src/main/cpp/CMakeLists.txt | 5 +++++ .../kotlin/com/tutpro/baresip/AccountActivity.kt | 14 +++++++------- app/src/main/kotlin/com/tutpro/baresip/Config.kt | 4 ++++ 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/src/main/assets/config b/app/src/main/assets/config index 998fde33..8699778e 100644 --- a/app/src/main/assets/config +++ b/app/src/main/assets/config @@ -20,9 +20,10 @@ jitter_buffer_delay 5-10 rtp_stats no dyn_dns yes prefer_ipv6 no -module opus.so -module g711.so +module ilbc.so module g7221.so +module g711.so +module opus.so module webrtc_aec.so module opensles.so module stun.so diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index 880feedd..a81be15b 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -27,6 +27,10 @@ add_library(lib_g722_1 STATIC IMPORTED) set_target_properties(lib_g722_1 PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/g7221/lib/${ANDROID_ABI}/libg722_1.a) +add_library(lib_ilbc STATIC IMPORTED) +set_target_properties(lib_ilbc PROPERTIES IMPORTED_LOCATION + ${distribution_DIR}/ilbc/lib/${ANDROID_ABI}/libilbc.a) + add_library(lib_webrtc STATIC IMPORTED) set_target_properties(lib_webrtc PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/webrtc/lib/${ANDROID_ABI}/libwebrtc.a) @@ -61,6 +65,7 @@ target_link_libraries(baresip lib_crypto lib_opus lib_g722_1 + lib_ilbc lib_webrtc lib_zrtp lib_bn diff --git a/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt index 56c7ae54..abc08fc1 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt @@ -76,10 +76,10 @@ class AccountActivity : AppCompatActivity() { val codec = acc.audioCodec[i] spinnerList[i].add(codec) for (c in audioCodecs) if (c != codec) spinnerList[i].add(c) - spinnerList[i].add("") + spinnerList[i].add("-") } else { - spinnerList[i] = audioCodecs - spinnerList[i].add(0, "") + spinnerList[i].addAll(audioCodecs) + spinnerList[i].add(0, "-") } val codecSpinner = findViewById(spinner.id) as Spinner val adapter = ArrayAdapter(this,android.R.layout.simple_spinner_item, @@ -309,16 +309,16 @@ class AccountActivity : AppCompatActivity() { } } - val ac = ArrayList(LinkedHashSet(newCodecs.filter { it != "" } as ArrayList)) + val ac = ArrayList(LinkedHashSet(newCodecs.filter { it != "-" } as ArrayList)) if (ac != acc.audioCodec) { - Log.d("Baresip", "New codecs ${newCodecs.filter { it != "" }}") + Log.d("Baresip", "New codecs ${newCodecs.filter { it != "-" }}") val acParam = ";audio_codecs=" + Utils.implode(ac, ",") if (account_set_audio_codecs(acc.accp, acParam) == 0) { var i = 0 while (true) { val codec = account_audio_codec(acc.accp, i) if (codec != "") { - Log.d("Baresip", "Found audio codec $codec") + Log.d("Baresip", "Found audio codec '$codec'") i++ } else { break @@ -327,7 +327,7 @@ class AccountActivity : AppCompatActivity() { acc.audioCodec = ac save = true } else { - Log.e("Baresip", "Setting of audio codecs $acParam failed") + Log.e("Baresip", "Setting of audio codecs '$acParam' failed") } } diff --git a/app/src/main/kotlin/com/tutpro/baresip/Config.kt b/app/src/main/kotlin/com/tutpro/baresip/Config.kt index fe88f1e0..a1648b06 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Config.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Config.kt @@ -24,6 +24,10 @@ object Config { config = "${config}module g7221.so\n" write = true } + if (!config.contains(Regex("module[ ]+ilbc.so"))) { + config = "${config}module ilbc.so\n" + write = true + } if (config.contains(Regex("#module_app[ ]+mwi.so"))) { config = config.replace(Regex("#module_app[ ]+mwi.so"), "module_app mwi.so")