diff --git a/Makefile b/Makefile index 20d571d10..18415f601 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,7 @@ BUILD_G729=0 BUILD_TUNNEL=0 BUILD_WEBRTC_AECM=1 BUILD_OPUS=1 +BUILD_WEBRTC_ISAC=1 BUILD_FOR_X86=1 USE_JAVAH=1 BUILD_TLS=1 @@ -210,6 +211,7 @@ $(LIBMSSILK_BUILD_DIR)/sdk/SILK_SDK_SRC_v1.0.8/SILK_SDK_SRC_ARM_v1.0.8/src/SKP_S prepare-silk: $(LIBMSSILK_BUILD_DIR)/sdk/SILK_SDK_SRC_v1.0.8/SILK_SDK_SRC_ARM_v1.0.8/src/SKP_Silk_resampler.c + #Zrtp $(TOPDIR)/submodules/externals/libzrtpcpp/libzrtpcpp-config.h : $(TOPDIR)/submodules/externals/build/libzrtpcpp/libzrtpcpp-config.h @cd $(TOPDIR)/submodules/externals/libzrtpcpp/ && \ @@ -283,7 +285,7 @@ prepare-sources: build-ffmpeg build-x264 prepare-ilbc build-vpx prepare-silk pre GENERATE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) BUILD_FOR_X86=$(BUILD_FOR_X86) \ BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_OPUS=$(BUILD_OPUS) \ BUILD_VIDEO=$(BUILD_VIDEO) BUILD_X264=$(BUILD_X264) \ - BUILD_UPNP=$(BUILD_UPNP) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) + BUILD_UPNP=$(BUILD_UPNP) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_WEBRTC_ISAC=$(BUILD_WEBRTC_ISAC) LIBLINPHONE_OPTIONS = $(GENERATE_OPTIONS) \ LINPHONE_VERSION=$(LINPHONE_VERSION) BELLESIP_VERSION=$(BELLESIP_VERSION) USE_JAVAH=$(USE_JAVAH) \ diff --git a/jni/Android.mk b/jni/Android.mk index b4cc545ee..c62e7e552 100755 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -142,14 +142,43 @@ ifneq ($(BUILD_OPUS), 0) include $(linphone-root-dir)/submodules/externals/build/opus/Android.mk endif -ifneq ($(BUILD_WEBRTC_AECM), 0) -ifneq ($(TARGET_ARCH), x86) -ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) -WEBRTC_BUILD_NEON_LIBS=true +WEBRTC_BUILD_NEON_LIBS=false + +# AECM +ifneq ($(BUILD_WEBRTC_AECM),0) + + ifneq ($(TARGET_ARCH), x86) + + ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) + $(info $(TARGET_ARCH_ABI): Build NEON modules for AECM) + WEBRTC_BUILD_NEON_LIBS=true + endif + + $(info $(TARGET_ARCH_ABI): Build AECM from WebRTC) + + include $(linphone-root-dir)/submodules/externals/build/webrtc/system_wrappers/Android.mk + include $(linphone-root-dir)/submodules/externals/build/webrtc/modules/audio_processing/utility/Android.mk + include $(linphone-root-dir)/submodules/externals/build/webrtc/modules/audio_processing/aecm/Android.mk + endif endif -include $(linphone-root-dir)/submodules/externals/build/webrtc/system_wrappers/Android.mk -include $(linphone-root-dir)/submodules/externals/build/webrtc/common_audio/signal_processing/Android.mk -include $(linphone-root-dir)/submodules/externals/build/webrtc/modules/audio_processing/utility/Android.mk -include $(linphone-root-dir)/submodules/externals/build/webrtc/modules/audio_processing/aecm/Android.mk + +# iSAC +ifneq ($(BUILD_WEBRTC_ISAC),0) + + # don't build for neon in x86 + ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) + $(info $(TARGET_ARCH_ABI): Build NEON modules for ISAC) + WEBRTC_BUILD_NEON_LIBS=true + endif + + $(info $(TARGET_ARCH_ABI): Build proprietary iSAC plugin for mediastreamer2) + include $(linphone-root-dir)/submodules/externals/build/webrtc/modules/audio_coding/codecs/isac/fix/source/Android.mk + include $(linphone-root-dir)/submodules/msisac/Android.mk endif + +# common modules for ISAC and AECM +ifneq ($(BUILD_WEBRTC_AECM)$(BUILD_WEBRTC_ISAC),00) + $(info $(TARGET_ARCH_ABI): Build common modules for iSAC and AECM ($(BUILD_WEBRTC_AECM)$(BUILD_WEBRTC_ISAC))) + include $(linphone-root-dir)/submodules/externals/build/webrtc/common_audio/signal_processing/Android.mk endif + diff --git a/jni/Application.mk b/jni/Application.mk index a70c47849..71a4a2021 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -95,6 +95,11 @@ APP_MODULES += libwebrtc_system_wrappers libwebrtc_spl libwebrtc_apm_utility lib APP_MODULES += libwebrtc_spl_neon libwebrtc_aecm_neon endif +ifneq ($(BUILD_WEBRTC_ISAC), 0) +APP_MODULES += libwebrtc_spl libwebrtc_isacfix libmsisac +APP_MODULES += libwebrtc_spl_neon libwebrtc_isacfix_neon +endif + ifeq ($(BUILD_MEDIASTREAMER2_SDK), 0) ifeq ($(RING),yes) APP_MODULES += libring